IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

boucle et session


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 6
    Points
    6
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>';
    }

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['valeur'][]=$data[valeur];
    En passant aussi, il faut mettre un attribut value a tes balises option.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    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.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Raideman vous a déjà donné la solution (regardez bien la différence) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $chateau_selecte = $_SESSION['chateau'];
    echo $chateau_selecte;
    ?>

  6. #6
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    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...)

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    tu peux me dire comment tu fais?

  8. #8
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    d'abord ton formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $chateau_selecte = $_POST['liste'];
    $_SESSION['chateau'] = $chateau_selecte;
    echo $_SESSION['chateau'];
    ?>

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    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.

  10. #10
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    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...

Discussions similaires

  1. Boucle et session identification
    Par gwendoline-bricout dans le forum Langage
    Réponses: 4
    Dernier message: 14/10/2013, 10h23
  2. Boucle Foreach + sessions
    Par sabine2000 dans le forum Langage
    Réponses: 3
    Dernier message: 15/09/2011, 19h13
  3. boucle sur session
    Par sam01 dans le forum Langage
    Réponses: 6
    Dernier message: 21/03/2006, 17h31
  4. [Sécurité] Somme sur session et boucle
    Par hugo69 dans le forum Langage
    Réponses: 5
    Dernier message: 22/11/2005, 11h28
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo