$_session Gros pb !!!!

Fermé
guispider Messages postés 50 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 31 mai 2009 - 6 févr. 2009 à 14:29
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 6 févr. 2009 à 16:40
Bonjour,

Je suis bloqué depuis plusieurs heures sur ce problème. Je vous présente le bou de script de mon pb, sa se présente dans un tableau qui interroge une table de ma bdd, ce tableau affiche les tuple qui peuple cette table, maintenant je rajoute une collone devan caque ligne avec a l'intérieur un bouton radio me permettant de choisir un ligne afin de la charger dans un formulaire !

Le pb est que la variable choix qui est l'id de chaque tuple ne pren pas en compte mon choi mais charge les donnée du dernier tuple de la base.


$CHOIX= odbc_result($req,"NUMERO_PLAN_ACTION");
$INTITULE=odbc_result($req,"INTITULE");
$DELAI=odbc_result($req,"DELAI");
$PILOTE=odbc_result($req,"PILOTE");
$CLOTURE=odbc_result($req,"CLOTURE");
$COMPLEMENT_CLOTURE=odbc_result($req,"COMPLEMENT_CLOTURE");


echo "<tr>";
echo "<td class='table-ligne1-centre' width='20'> $CHOIX <input type='radio' name='choix' value= '".$CHOIX."'> </td>";
echo "<td class='table-ligne1-centre' width='150'>$INTITULE</td>";
echo "<td class='table-ligne1-centre' width='10'>$DELAI</td>";
echo "<td class='table-ligne1-centre' width='50'>$PILOTE</td>";
echo "<td class='table-ligne1-centre' width='10'>$CLOTURE</td>";
echo "<td class='table-ligne1-centre' width='30'>$COMPLEMENT_CLOTURE</td>";
echo "</tr>";

}
$_SESSION['choix'] = $CHOIX;

1 réponse

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
6 févr. 2009 à 16:40
Bonjour,

Quand je regarde la fin de ton code :
}
$_SESSION['choix'] = $CHOIX;


Je vois qu'il y a une '}', c'est donc que tu es dans une boucle d'affichage (quoi de plus normal en même temps).
Puisque ton instruction est en dehors de ta boucle, il est normal que $CHOIX ai pour valeur le dernier tuple traité dans ta boucle au moment où tu le sauvegarde en session.

La vrai question est : que veux-tu en faire exactement de l'identifiant des tuples ?
Est-ce que tu souhaite sauvegarder tous les identifiants des tuples affichés ?
Si oui, alors tu n'a qu'à simplement mettre ton instruction à l'intérieur de ta boucle, après l'affichage d'un tuple, comme suit:
$_SESSION['choix'] = $CHOIX;
}


Attention cependant, si tu procède ainsi, ta variable $_SESSION['choix'] devient automatiquement un tableau dans lequel tu aura l'ensemble des tuples. Or, il faut donc penser à vider ce tableau avant ton affichage, sinon lorsque tu vas visualiser plusieurs fois ta page, les tuples stockés précédemment en seront pas vidés, et donc tu risuqe d'accumuler des tuples non voulus en mémoire et ainsi corrompre ton traitement, en plus de risque de saturer la mémoire en session.

Si non, précise exactement ce que tu veux faire, le traitement a effectuer en dépend.
0