Une variable $_SESSION extraite d'un While

Résolu/Fermé
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 - 19 janv. 2011 à 15:59
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 - 19 janv. 2011 à 19:08
Bonjour,

J'essaie tant bien que mal d'extraire une variable d'une boucle while pour la mettre dans une super globale session, mais rien n'y fait. Je me suis tourné du côté des array car en mettant simplement la variable à prendre dans le while (comme un 'id'), celui ne prend que la dernière variable de la boucle pour la session. Ce qui est quelque peu embêtant.
J'attends vos conseils pour pouvoir récupérer les données de la boucle dans une $_SESSION...

Merci d'avance ! =)


3 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 474
19 janv. 2011 à 16:06
Sans code pas facile de t'aider.
0
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 4
19 janv. 2011 à 16:17
Oui c'est vrai mais y a pas vraiment de code... En fait, voilà ce que j'essaye de faire en gros :
// Afficher les messages
while ($donnees = $reponse->fetch())
	{
		$donnees['id'];
		//Reste des messages a afficher
	}
	
$_SESSION['id_message'] = $donnees['id'];


Je voudrais pouvoir mettre la valeur $donnees['id'] du message séléctionné dans une superglobale de $_SESSION pour la réutiliser. Je pense aux arrêts, mais je ne vois vraiment pas comment faire...

0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 474
19 janv. 2011 à 17:04
Dans ton cas, à chaque passage de la boucle tu as un résultat.
Par exemple, si ta boucle te retourne 5 résultats, la variable $donnees['id'] prendra tour à tour 5 valeurs différente.
// Afficher les messages
while ($donnees = $reponse->fetch())
	{
		$donnees['id'];
		echo'<p><strong>ID:</strong> '.$donnees['id'].'</p>';
		//Reste des messages a afficher
	}
	
$_SESSION['id_message'] = $donnees['id'];

Dans ce cas, ta variable de session prends la dernière valeur puisque tu la défini en dehors de boucle.

Si tu la défini dans la boucle
// Afficher les messages
while ($donnees = $reponse->fetch())
	{
		$donnees['id'];
		echo'<p><strong>ID:</strong> '.$donnees['id'].'</p>';

		$_SESSION['id_message'] = $donnees['id'];
		//Reste des messages a afficher
	}

Dans ce cas, la variable de session est réécrite a chaque fois et tu auras encore le dernier résultat.
A partir d'une boucle tu ne peux pas récupérer la valeur de l'id pour une raison très précise. Si la boucle te retourne 5 résultats, comment sais tu quel id tu veux récupérer de ces 5 résultats?

Une idée:
// Afficher les messages
while ($donnees = $reponse->fetch())
	{
		$donnees['id'];
		echo'<p><strong>ID:</strong> <a href="page.php?id='.$donnees['id'].'">'.$donnees['id'].'</a></p>';
		//Reste des messages a afficher
	}

A chaque affichage de résultat, créé un lien dans lequel on fait passé l'id dans l'url.
Sur la page page.php, il te suffit de mettre:
<?php
echo '<p><strong>ID:</strong> '.$_GET['id'].'</p>';
?>


A toi de voir ce que tu veux en faire précisément.
0
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 4
19 janv. 2011 à 17:53
Que dire a part que ca fonctionne parfaitement...
Merci, j'avais vu ca brièvement, mais c'était peu expliqué donc je n'avait pas compris... Mais merci, comme ca c'est nickel ! Ca m'aura juste pris un après midi.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 474
19 janv. 2011 à 17:58
N'oublie pas de changer le statu en résolu.
0
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 4
19 janv. 2011 à 19:08
Oui oui, je n'oublie jamais ne t'en fais pas =)
0