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 05/06/2006, 08h32   #1
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
Par défaut boucle while et session

bonjour à tous

voilà j'ai une boucle while (qui me retourne 2 résultats) que voici :
Code :
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 :
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..
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 08h39   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
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
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 20h52   #3
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
oki
bon on m'a aidé et j'ai fait un truc comme ça :
Code :
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 :
1
2
3
4
 
$dispo[$i] = $_SESSION['dispo'][$i];
 
echo $dispo[$i]."CHAMBRE DISPO<br>";
il reconnait plus le $i

pffuu
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 21h08   #4
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Si tu as que 2 résultats tu mets pas $i mais les numéros:

Code :
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 :
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 :
1
2
3
4
$i = 0;
while (isset($_SESSION['dispo'][$i])) {
   $dispo[] = $_SESSION['dispo'][$i];
}
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 21h17   #5
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 569
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 569
Points : 2 503
Points : 2 503
Salut, une boucle foreach pourrait aussi t'être très utile
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 21h57   #6
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
bon j'ai mis :
Code :
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 :
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
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 21h59   #7
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
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 :
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];
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 22h17   #8
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
je reexplique
le client choisi le type de chambre et un nombre de chambre soit 1, 2..)
voila ma requet
Code :
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.
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 01h12   #9
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
bon finalement j'ai utilisé :
Code :
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 :
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
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 03h22   #10
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Code :
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 :
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 :
1
2
3
4
session_start();
$nb = count($_SESSION['dispo']);
for($i=0;$i<$nb;$i++)
     echo $_SESSION['dispo'][$i].'disponibilite<br />';
@ tchaOo°
kankrelune 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 19h47.


 
 
 
 
Partenaires

Hébergement Web