Variable de session dans boucle [Résolu]

Messages postés
47
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
31 mai 2012
- - Dernière réponse : cs_math11
Messages postés
47
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
31 mai 2012
- 31 mai 2012 à 18:09
Salut,

Actuellement occupé sur un projet de gestion de données, j'ai un problème pour récupérer la valeur de la variable de session (id).

En effet, le script suivant affiche un tableau de données extraites de la base, avec la possibilité d'en sélectionner une afin de créer un fichier pdf.

Mon problème, lorsque je clique sur le lien, la valeur de l'id ne change pas, elle reste à la valeur du dernier élément du tableau.

Que faire pour remédier à ce problème?

session_start();
// Connexion au serveur
require ("./connect.php");
$connexion =  mysql_connect (SERVEUR,NOM,PASSE);
$db = mysql_select_db("gestion") ;
// Création de la requête
$sql="SELECT * FROM contentieux";

//exécution de la requête:
    $requete = mysql_query( $sql, $connexion );

//Affichage des données	

//Affichage de l'entête des colonnes
echo ('
');
echo ('<script language="JavaScript" src="order.js">');
echo ('<!--');
echo ('//-->');
echo ('</script>');
echo '<caption>Liste des contentieux en cours</caption>----
 N°dossier  |Nom |Prénom |N° facture |Montant facture |Adresse |Ville |Action |Etat |';

//Boucle d'affichage des données

while( $result  = mysql_fetch_array( $requete )){

if ($result['Etat'] =='1')
{
$etat = \"transmis\";
}
else
{
$etat = \"en cours\";
}
$_SESSION['id'] = $result['id'];
//$_SESSION['id'] = '1';
echo '----
',''.$result['id'].', ',''.$result['Nom'].', ',''.$result['Prenom'].', ',''.$result['Num_fact'].', ',''.$result['Mont_facture'].', ',''.$result['Adresse'].', ',''.$result['Ville'].', ',''.$_SESSION['id'].'Générer PDF, '.$etat.', ',''.\"\n\";
//echo '----
',''.$result['id'].', ',''.$result['Nom'].', ',''.$result['Prenom'].', ',''.$result['Num_fact'].', ',''.$result['Mont_facture'].', ',''.$result['Adresse'].', ',''.$result['Ville'].', ',''.$_SESSION['id'].', '.$etat.', ',''.\"\n\";
}
echo '
<hr align="center" size="1" width="95%">
';



Merci d'avance pour votre aide

math11
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
3
Merci
Re-Bonjour,

Déjà, tu n'as pas besoin de ta variable de session, vue que tu lance un script.
Donc tu te débarasse de la variable $_SESSION['id'] et tu utilise le $result['id']

Ensuite dans ton script test.php tu fait un $_GET['id'] (qui correspond à la partie ?id=$result['id'] du lien sélectionné)

Maintenant si tu ne veut pas que ton $result['id'] transite en clair dans l'url tu as la possibilité de faire passer un index de tableau.

Ta variable $_SESSION['id'] contient alors un Array et ta boucle se transforme :

$arrInMemory = array();
$rowInArray = 0;
 while( $result = mysql_fetch_array( $requete )){	
if ($result['Etat'] =='1') {
$etat = "transmis";
}
else	{
$etat = "en cours";
}
        array_push($arrInMemory ,$result['id']);

        echo [Le même que avant sauf que tu remplace les $_SESSION['id'] par $rowInArray]
        $rowInArray++;
}
$_SESSION['id'] = $arrInMemory;


Dans ton script test.php?id=XX le $_GET['id'] te donne l'index a récupéré dans le array qui est en session.



Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 194 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Lyle56
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
0
Merci
Bonjour,

C'est normal;
Ta boucle "écrase" la valeur de $_SESSION['id'].

Après je ne comprend pas ce que tu souhaite faire exactement, mais à mon avis il y as un petit soucis de conception/compréhension derrière tout cela...



Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
Commenter la réponse de Lyle56
Messages postés
47
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
31 mai 2012
0
Merci
salut,

merci pour ta réponse rapide.

le but est de générer une facture au format pdf (librairie fpdf) en récupérant les information contenues dans la base de données en fonction de l'id.

comment faudrait il faire afin que la valeur ne s'écrase pas?

merci

math11
Commenter la réponse de cs_math11
Messages postés
47
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
31 mai 2012
0
Merci
merci lyle56 pour ton aide.

math11
Commenter la réponse de cs_math11