Variable de session dans boucle [Résolu]

Messages postés
47
Date d'inscription
mardi 9 août 2005
Dernière intervention
31 mai 2012
- 31 mai 2012 à 15:42 - Dernière réponse :
Messages postés
47
Date d'inscription
mardi 9 août 2005
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 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Dernière intervention
19 juillet 2012
31 mai 2012 à 16:50
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.

Merci Lyle56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de Lyle56
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Dernière intervention
19 juillet 2012
31 mai 2012 à 16:10
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
Dernière intervention
31 mai 2012
31 mai 2012 à 16:19
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
Dernière intervention
31 mai 2012
31 mai 2012 à 18:09
0
Merci
merci lyle56 pour ton aide.

math11
Commenter la réponse de cs_math11

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.