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 while et session


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut boucle while et session
    bonjour à tous

    voilà j'ai une boucle while (qui me retourne 2 résultats) que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if($tab_com = mysql_query($sql1))
    {
     
      while ($dispo=mysql_fetch_array($tab_com))
     {
       $_SESSION['dispo'][0] = $dispo[0];
       echo $dispo[0]."chambre dispo<br>";
    }
    }
    et j'aimerais recuperer les resultats de cette boucle sur une page suivante
    sur la page suivante j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $dispo[0] = $_SESSION['dispo'][0];
    echo $dispo[0]."CHAMBRE DISPO<br>";
    mais au lieu de me retourner les 2 résultats voulus, j'en ais qu'1.

    en faite je comprends pas pourquoi ça ne marche pas.
    quelqu'un pourrait il m'eclaircir?

    merci beaucoup..

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    c logique dans la boucle while rien ne varie donc si tu veu le 2nd resultat efface le second...
    au lieu de 0 met [$i] uqe tincremente

  3. #3
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    oki
    bon on m'a aidé et j'ai fait un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $i = 0;
     if($tab_com = mysql_query($sql1))
    {
     
      while ($dispo=mysql_fetch_array($tab_com))
     {
       $_SESSION['dispo'][$i] = $dispo[$i];
       echo $dispo[$i]."chambre dispo<br>";
    }
    $i = $i++;
    }
    mais quand je passe à l'autre page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $dispo[$i] = $_SESSION['dispo'][$i];
     
    echo $dispo[$i]."CHAMBRE DISPO<br>";
    il reconnait plus le $i

    pffuu

  4. #4
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Si tu as que 2 résultats tu mets pas $i mais les numéros:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $dispo[0] = $_SESSION['dispo'][0];
    $dispo[1] = $_SESSION['dispo'][1];
    echo $dispo[0]."CHAMBRE DISPO<br>";
    Si le nombre de lignes est inconnu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if($tab_com = mysql_query($sql1)) {
       $i = 0;
       while ($dispo=mysql_fetch_array($tab_com)) {
          $_SESSION['dispo'][] = $dispo[$i];
          echo $dispo[$i]."chambre dispo<br>";
          $i++;
       }
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $i = 0;
    while (isset($_SESSION['dispo'][$i])) {
       $dispo[] = $_SESSION['dispo'][$i];
    }

  5. #5
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, une boucle foreach pourrait aussi t'être très utile

  6. #6
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    bon j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if($tab_com = mysql_query($sql1)) 
      {
        while ($dispo=mysql_fetch_array($tab_com))
          {
            $_SESSION['dispo'][] = $dispo[0];
            echo $dispo[0]."chambre dispo<br>";
    }
    }
    et sur la page d'après :
    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
    18
    19
     
     $dispo[0] = $_SESSION['dispo'][0];
     
     $dispo[1] = $_SESSION['dispo'][1];
     
     
     if (isset ( $dispo[0]))
    {
    echo $dispo[0]."CHAMBRE DISPO dispo<br>";
    }
     else { echo "";}
     
    if (isset ( $dispo[1]))
     {
     
    echo $dispo[1]."CHAMBRE DISPO dispo1<br>";
     }
     else
     {echo ""; }
    mais il m'affiche quand meme 2 résultats alors qu'il devrait m'afficher 1 seul

  7. #7
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Citation Envoyé par oceane751
    mais il m'affiche quand meme 2 résultats alors qu'il devrait m'afficher 1 seul
    Tu nous as dit que tu avais deux lignes de résulats
    Sinon petite précision ton code est trop lourd, le mieux est de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Si la variable existe, il la récupère, sinon il créé une chaine vide
    $dispo[1] = (isset($_SESSION['dispo'][1])) ? $_SESSION['dispo'][1] : "";
    // Si ce n'est pas une chaine vide, il l'affiche
    if (!empty($dispo[1])) echo $dispo[1];

  8. #8
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    je reexplique
    le client choisi le type de chambre et un nombre de chambre soit 1, 2..)
    voila ma requet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $sql1 = "SELECT num_chambre
             FROM appartenir
             WHERE num_categorie = '".$personne."'
             AND num_chambre NOT IN
                (
                    SELECT num_chambre 
                    FROM reserver
                    WHERE date_arrivee = '".$date."'
                    OR date_depart = '".$date1."'
                )LIMIT 0,".$nombre."";
    et ça m'affiche le ou les numero de chambre en fonction du $nombre (nombre de chambre desiré par le client)


    donc si je choisi une chambre de 1 personne ça m'affiche 2 résultats au lieu d'un seul.

  9. #9
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    bon finalement j'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $i=0;
    if($tab_com = mysql_query($sql1)) 
    { 
    while($dispo=mysql_fetch_array($tab_com)) 
    { 
    $_SESSION['dispo'][$i] = $dispo[$i]; 
    echo $dispo[$i]."chambre dispo<br>";
    }
    $i=$i++;
    }
    à la page suivante j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $i = 0;
    $dispo[$i] = $_SESSION['dispo'][$i];
    echo $dispo[$i]."disponibilite";
    mais bon ça ne me donne pas le résultat voulu :s

  10. #10
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if($tab_com = mysql_query($sql1)) 
    { 
        while($dispo = mysql_fetch_array($tab_com)) 
        {
            $_SESSION['dispo'][] = $dispo;
            echo $dispo.' chambre dispo<br />';
         }
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if($tab_com = mysql_query($sql1)) 
    { 
        while($_SESSION['dispo'][] = $dispo = mysql_fetch_array($tab_com)) 
            echo $dispo.' chambre dispo<br />';
    }
    Et pour l'autre page...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    session_start();
    $nb = count($_SESSION['dispo']);
    for($i=0;$i<$nb;$i++)
         echo $_SESSION['dispo'][$i].'disponibilite<br />';
    @ tchaOo°

Discussions similaires

  1. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 17h35
  2. Boucle while & read
    Par gibet_b dans le forum Linux
    Réponses: 4
    Dernier message: 29/04/2005, 16h38
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 18h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 23h51
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 16h20

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