Les Allergies
Alimentaires
Posez votre question Signaler

Une variable $_SESSION extraite d'un While [Résolu]

Nowne 79Messages postés 30 octobre 2010Date d'inscription 7 mars 2011Dernière intervention - Dernière réponse le 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 ! =)
Lire la suite 

Une variable $_SESSION extraite d'un While »

6 réponses
Réponse
+0
moins plus
Sans code pas facile de t'aider.
Ajouter un commentaire
Réponse
+0
moins plus
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...

arthezius- 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.
Ajouter un commentaire
Réponse
+0
moins plus
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.
arthezius- 19 janv. 2011 à 17:58
N'oublie pas de changer le statu en résolu.
Nowne- 19 janv. 2011 à 19:08
Oui oui, je n'oublie jamais ne t'en fais pas =)
Ajouter un commentaire
Ce document intitulé « Une variable $_SESSION extraite d'un While » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?