Variable de session dans boucle [Résolu]

Signaler
Messages postés
47
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
31 mai 2012
-
cs_math11
Messages postés
47
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
31 mai 2012
-
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

Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
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.
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
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.
Messages postés
47
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
31 mai 2012

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
Messages postés
47
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
31 mai 2012

merci lyle56 pour ton aide.

math11