boucle while()

Répondre
tyros
le 26/04/2009 à 01:37
tyros
Bonjour,

j'ai un problème avec ma boucle

$sql = "SELECT nom,etoile,ville,web FROM hotel ORDER BY RAND() limit 5";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


$sql2 = "SELECT nom,filepath,filename,presentation FROM photo WHERE nom = '".mysql_real_escape_string($data['nom'])."' AND presentation='y'";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());


$sql3 = "SELECT AVG(moyenne) AS moyenne, count(id) AS id FROM commentaire WHERE nom = '".mysql_real_escape_string($data['nom'])."'";
$req3 = mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());




while (($data = mysql_fetch_array($req))||($data2 = mysql_fetch_array($req2))||($data3 = mysql_fetch_array($req3))) {
tyros
le 26/04/2009 à 14:33
tyros
le problème c'est que les photos ne s'affiche pas et que les infos du $data3 ne s'affiche pas, mais tout fonctionnait avant que j'ajoute le while() pour faire une boucle.

dans ma table j'ai seulement 2 entrée pour le moment, mais la boucle fais comme s'il y en avait 3.

tu peux aller voir http://www.voyagerenimages.com/hotel/
LA GLOBULE
le 27/04/2009 à 23:53
LA GLOBULE
Heu, ton but, c'est de faire quoi la ?

Perso, j'ai ma petite idée (afficher les photos et les commentaires d'un hotel), mais la, ton code tel qu'il est aujourd'hui, il ne fait pas cela du tout.

Tu as plusieurs solutions :
- récupérer tout d'abord la liste des hotel, puis, pour chaque hotel (donc dans le while qui affiche les hotels) faire une requête qui va récupérer les photos
- lire le cours sur les jointures SQL (qui est la solution la plus propre)
tyros
le 28/04/2009 à 04:10
tyros
merci

j'ai la requete sql qui fonctionne bien dans sql, mais lorsque je la met dans le code php ca fonctionne pas.

$sql = "SELECT hotel.nom,hotel.etoile,hotel.ville,hotel.web,photo.nom,photo.filepath,photo.filename,photo.presentation FROM hotel,photo WHERE photo.nom = hotel.nom AND photo.presentation="y" ORDER BY RAND() limit 0,5";


je sais pas si les variables $data['filepath'] sont corect.

echo '<tr><td width="125"><img src="'.$data['filepath'].'/'.$data['filename'].'" width="175" height="125"/></td><td width="275" align="left" valign="top">'.$data['ville'].'</br>';
LA GLOBULE
le 28/04/2009 à 20:30
LA GLOBULE
C'est un peu facile de dire "cela ne fonctionne pas".

Pourquoi cela ne fonctionne pas ? Tu as une erreur SQL ? tu as fais des echo pour débuguer ?

Quant à tes filepath, seul toi peut savoir si ils sont corrects ou non (je n'ai pas accès à ta base de données ni à ton FS, donc je ne peux rien vérifier).
LupusMic
le 28/04/2009 à 22:11
LupusMic
(tyros) Relis la documentation à propos de la boucle while. La logique du while est dans la seconde partie du while, pas dans la première.

<?php
while(condition_de_continuation)
{
instruction_repétée ;
}
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
tyros
le 29/04/2009 à 03:35
tyros
je suis sur le point de passer pour un idiot ;)

ca fonctionne, mais la comment faire pour ajouter avg(moyenne) et count(id) de ma table commentaire dans cette requête, j'ai essayer plein de truc, mais ca n'affiche jamais la bonne affaire
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours