Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 07/03/2011, 17h25   #1
Invité de passage
 
letef aurelie
Inscription : novembre 2010
Messages : 14
Détails du profil
Informations personnelles :
Nom : letef aurelie

Informations forums :
Inscription : novembre 2010
Messages : 14
Points : 4
Points : 4
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 :
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.
glaconutella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 20h39   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il manque un GROUP BY dans ta requête.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 00h12   #3
Invité de passage
 
letef aurelie
Inscription : novembre 2010
Messages : 14
Détails du profil
Informations personnelles :
Nom : letef aurelie

Informations forums :
Inscription : novembre 2010
Messages : 14
Points : 4
Points : 4
Bien sûr...

merci beaucoup en tout cas !
quelle idiote !!

glaconutella est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h08.


 
 
 
 
Partenaires

Hébergement Web