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

PHP & Base de données Discussion :

PB Boucle : while(..= ..->fetch()) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 14
    Par défaut PB Boucle : while(..= ..->fetch())
    Bonjour,

    j'ai un petit soucis avec l'affichage du résultat d'une requête. Voici un petit bout de mon code :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
     
     try
    {
         $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
         $bdd = new PDO('mysql:host=localhost;dbname=camping', 'root', '', $pdo_options);
     
    	 $reqeplt = $bdd->prepare('select count(Id_emplacement), Id_emplacement from emplacement where ombrage in ( ? ) and piscine_proche in ( ? ) and proche_sanitaire in ( ? ) 
    and Id_emplacement not in (select Id_emplacement from reservation where
    	(
    		(? >= arrivee AND ?  < depart )
    		 OR
    		 (?  > arrivee AND ?  <= depart)
    		 OR
    		 (? < arrivee) AND (arrivee < ? )
    		OR
    		(?  = arrivee) AND (depart = ? )
    		OR (?  = arrivee) ))');
     
    $rest = substr($_POST["listMois"], -6, 2);	
    $arrivee=mktime($rest, $_POST["listJour"], 2011); // arrivée au camping
    $depart=mktime($rest, $_POST["listJour"]+$_POST['duree'], 2011); // départ du camping
     
    	$reqeplt->execute(array( $_POST['ombrage'], $_POST['piscine'], $_POST['sanitaire'], '$arrivee', '$arrivee', '$depart', '$depart','$arrivee',
    	'$depart','$arrivee','$depart','$arrivee'));
     
    foreach ($reqeplt as $row){
    		$nbligne= $row['count(Id_emplacement)'] ;
    	} 
    echo $nbligne."<br/>";
     
     
    	$reqeplt->execute(array( $_POST['ombrage'], $_POST['piscine'], $_POST['sanitaire'], '$arrivee', '$arrivee', '$depart', '$depart','$arrivee',
    	'$depart','$arrivee','$depart','$arrivee'));
     
    while($donnees = $reqeplt->fetch()) {
    	 echo " resultats : ".$donnees['Id_emplacement']."<br/>";
    }
     
    $reqeplt->closeCursor();
     
    catch(Exception $e){
     
         die('Erreur : '.$e->getMessage());
     
    	 } 
     
    ?>
    Ma requête qui contient plusieurs résultats (i.e. nbligne>1) ne m'affiche qu'un seul résultat lors de la boucle "while($donnees = $reqeplt->fetch() ").

    J'ai vérifié dans ma base de données, la variable nbligne correspond bien et l'affichage de la boucle ne contient en fait que le premier résultat de la requête (le premier "Id_emplacement").

    Pourquoi ne m'affiche t'elle pas les autres résultats de cette requête lorsque nbligne>1 ??

    J'espère m'être bien expliquée.

    Merci d'avance pour vos réponses.

    Glaconutella.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il manque un GROUP BY dans ta requête.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 14
    Par défaut
    Bien sûr...

    merci beaucoup en tout cas !
    quelle idiote !!


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 16h35
  2. Boucle while & read
    Par gibet_b dans le forum Linux
    Réponses: 4
    Dernier message: 29/04/2005, 15h38
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  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