Une variable $_SESSION extraite d'un While

[Résolu/Fermé]
Signaler
Messages postés
89
Date d'inscription
samedi 30 octobre 2010
Statut
Membre
Dernière intervention
7 mars 2011
-
Messages postés
89
Date d'inscription
samedi 30 octobre 2010
Statut
Membre
Dernière intervention
7 mars 2011
-
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

Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
464
Sans code pas facile de t'aider.
Messages postés
89
Date d'inscription
samedi 30 octobre 2010
Statut
Membre
Dernière intervention
7 mars 2011
4
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...

Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
464
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.
Messages postés
89
Date d'inscription
samedi 30 octobre 2010
Statut
Membre
Dernière intervention
7 mars 2011
4
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.
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
464
N'oublie pas de changer le statu en résolu.
Messages postés
89
Date d'inscription
samedi 30 octobre 2010
Statut
Membre
Dernière intervention
7 mars 2011
4
Oui oui, je n'oublie jamais ne t'en fais pas =)