Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/03/2007, 16h55   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
Par défaut boucle et session

bonjour, je suis novice sur ce forum

bon mon problème:

j'ai une boucle avec laquelle je fais apparaître des valeurs, et ces valeurs, je voudrais les ravoirs dans une session.

mon bout de code:
Code :
1
2
3
4
5
$req = mysql_query("SELECT * FROM perso WHERE id='".$id."'");
while($data = mysql_fetch_array($req)) 
{
    echo '<option>'.$data['valeur'].'</option>';
}
pedros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2007, 18h27   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Code :
1
2
 
$_SESSION['valeur'][]=$data[valeur];
En passant aussi, il faut mettre un attribut value a tes balises option.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2007, 11h51   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
désoler Raideman mais c'est pas ce que je cherche enfin je crois, en fait, je fais ma boucle et je veux par exemple prendre la 15 ème valeur de la boucle sur les 20 existantes.

Le problème c'est que quand je fais ça, il m'affiche toujours la 20ème valeur quand je le faisait avant avec "$_SESSION['valeur']=$data[valeur];"

Je comprend pas pourquoi ça me fais ça.
pedros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 11h26   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Raideman vous a déjà donné la solution (regardez bien la différence) :
Code :
1
2
3
4
5
6
while($data = mysql_fetch_array($req)) 
{
    echo '<option>'.$data['valeur'].'</option>';
    $_SESSION['valeur'][] = $data['valeur'];
}
print_r($_SESSION['valeur']);
On pourrait l'écrire autrement :
Code :
1
2
3
4
5
6
7
$_SESSION['valeur'] = array();
while($data = mysql_fetch_array($req)) 
{
    echo '<option>'.$data['valeur'].'</option>';
    array_push($_SESSION['valeur'], $data['valeur']);
}
print_r($_SESSION['valeur']);
@Raideman : la syntaxe $data[valeur] n'est pas recommandée d'autant plus qu'elle génère des warning car PHP va d'abord chercher une constante nommée valeur avant de la transformer en une chaîne de caractères si une constante du même nom n'existe pas.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2007, 11h33   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
c'est toujours pas ça...

pourtant ça ma l'air pas trop compliquer mais j'y arrive pas.

Je me réexprime le mieux possible:

je veux dans une page comprenant le haut de la page faire une liste déroulante où mon code ressemble à:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form name="choix">
<select name="liste" >
 
<?php
//ma connection à ma bdd ici
 
$id = $_SESSION['id'];
$req = mysql_query("SELECT * FROM perso WHERE id='".$id."'"); 
while($data = mysql_fetch_array($req)) 
{  
echo '<option>'.$data['valeur'].'</option>'; 
}
 
?>
 
</select>
</form>

et dans une page de mon menu, j'aimerais afficher $valeur:


Code :
1
2
3
4
5
 
<?php
$chateau_selecte = $_SESSION['chateau'];
echo $chateau_selecte;
?>
pedros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2007, 11h37   #6
Membre actif
 
Avatar de Azazel.fr
 
Inscription : mars 2007
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 170
Points : 177
Points : 177
heu pour récupérer le chateau sélectionné dans ta liste déroulante, il faut le récupérer en POST (et apres tu pourras le mettre en session à la limite...)
__________________
http://www.bordeauxstunt.com
Azazel.fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2007, 23h19   #7
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
tu peux me dire comment tu fais?
pedros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 10h40   #8
Membre actif
 
Avatar de Azazel.fr
 
Inscription : mars 2007
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 170
Points : 177
Points : 177
d'abord ton formulaire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form name="choix" action="traitement.php" method="post">
<select name="liste" >
<?php
//ma connection à ma bdd ici
 $id = $_SESSION['id'];
$req = mysql_query("SELECT * FROM chateau"); 
while($data = mysql_fetch_array($req)) 
{  
echo "<option value=".$data['id_chateau'].">".$data['nom_chateau']."</option>"; 
}
 ?>
</select>
<input type="submit" name="valide" value="Choisir ce chateau">
</form>
et dans traitement.php :
Code :
1
2
3
4
5
<?php
$chateau_selecte = $_POST['liste'];
$_SESSION['chateau'] = $chateau_selecte;
echo $_SESSION['chateau'];
?>
__________________
http://www.bordeauxstunt.com
Azazel.fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 11h02   #9
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
oui, ça ça peut certainement marcher, mais ce que je veux faire, c'est une liste déroulante et quand on clique sur l'un des choix émis par la while et ben on peut dans une page afficher le chateau séléectionné dans la liste.

C'est peut être pas avec un formulaire qu'il faut si prendre peut être??

C'est peut être du java script.

PS: pour ceux qui connaissent Ogame, je veux faire comme la séléction des planètes dans la liste déroulante.
pedros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 11h45   #10
Membre actif
 
Avatar de Azazel.fr
 
Inscription : mars 2007
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 170
Points : 177
Points : 177
Code :
1
2
3
4
5
6
7
8
9
<select name='chateau'>
<?php
//while qui construit le option
if ($_SESSION['ID_CHATEAU'] == $data['id_chateau'])
   $selected = "selected";
 
echo "<option value='".$data['id_chateau']."'>".$data['nom_chateau']."</option>";
?>
</select>
__________________
http://www.bordeauxstunt.com
Azazel.fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 20h59   #11
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
peut tu écrires le code en entier stp, même si je crois pas que ça soit ça, mais donne ton idée stp.(avec la page de la while et la page où l'on afiche la valeur se trouvant dans la while)

comme je suis pas une bête en programmation, il faut tout m'expliquer...
pedros est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h36.


 
 
 
 
Partenaires

Hébergement Web