Variable de session dans boucle

Résolu
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 à 15:42
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

4 réponses

Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
31 mai 2012 à 16:50
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.
3
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
31 mai 2012 à 16:10
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.
0
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 à 16:19
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
0
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
merci lyle56 pour ton aide.

math11
0