Problème requête

Problème requête - PHP - Programmation

Marsh Posté le 31-05-2011 à 11:27:38    

Bonjour,
je vous contacte car j'ai un petit soucis avec mon script php... ou plus précisément avec ma requête SQL.
Je m'explique : je dois afficher les détails d'un gite (adresse, nombre de chambres, nombre de places, si il y a un jardin ou pas, la surface, tout cela étant dans la table "gite" avec comme clé primaire NumGite et clé étrangère MelProprio) ainsi que les coordonnées du propriétaire (nom, adresse, telephone, adresse mail, cela se trouve dans la table "proprio" avec comme clé primaire MelProprio), pour finir il me faut afficher les dates où le gite est plein (dateResDeb et DateResFin de la table reservation avec comme clé primaire NumRes et clé étrangère NumGite)
Voici mon script :  

Code :
  1. <?php
  2. include("connexionbase.php" );
  3. $requete = "SELECT RueGite, CPGite, VilleGite, NbPlaces, NbChambres, Surface, Jardin, gite.MelProprio, NomProprio, RueProprio, CPProprio, VilleProprio, TelProprio, DateResDeb, DateResFin FROM gite, proprio, reservation WHERE gite.NoGite = reservation.NoGite AND gite.MelProprio = proprio.MelProprio AND NoGite = 2;";
  4. $resultat = mysql_query($requete, $maConnexion);
  5. $nb = mysql_num_rows($resultat);
  6. for ($i=0 ; $i<$nb ; $i++)
  7. {
  8.  $rue = mysql_result($resultat, $i, 'RueGite');
  9.  $codepostal = mysql_result($resultat, $i, 'CPGite');
  10.  $ville = mysql_result($resultat, $i, 'VilleGite');
  11.  $nbplaces = mysql_result($resultat, $i, 'NbPlaces');
  12.  $nbchambres = mysql_result($resultat, $i, 'NbChambres');
  13.  $surface = mysql_result($resultat, $i, 'Surface');
  14.  $jardin = mysql_result($resultat, $i, 'Jardin');
  15.  $email = mysql_result($resultat, $i, 'MelProprio');
  16.  $telephone = mysql_result($resultat, $i, 'TelProprio');
  17.  $rueprop = mysql_result($resultat, $i, 'RueProprio');
  18.  $cpprop = mysql_result($resultat, $i, 'CPProprio');
  19.  $villeprop = mysql_result($resultat, $i, 'VilleProprio');
  20.  $nomprop = mysql_result($resultat, $i, 'NomProprio');
  21.  $dated = mysql_result($resultat, $i, 'DateResDeb');
  22.  $datef = mysql_result($resultat, $i, 'DateResFin');
  23. echo "L'adresse du gîte est $rue $codepostal $ville <br>";
  24. echo "Il possède $nbchambres chambres, pour un total de $nbplaces places<br>";
  25. echo "Jardin : $jardin<br>";
  26. echo "La totalité du terrain est de $surface m²<br><br>";
  27. echo "Informations propriétaire :<br>
  28.  Nom : $nomprop<br>
  29.  Adresse : $rueprop $cpprop $villeprop<br>
  30.  Adresse email : $email<br>
  31.  Téléphone : $telephone<br><br>";
  32. echo "Dates déja réservés :<br>
  33.  $dated jusqu'au $datef";
  34. }
  35. ?>


 
exemple@adressemail.fr est une adresse bidon que je vous met la comme exemple (j'pense que vous l'aurez compris :p)
connexionbase.php appelle ben... la connexion a la base ;).
 
Donc, quand j'exécute le script, j'obtiens "Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\1.php on line 25"
La ligne 25 contient : $nb = mysql_num_rows($resultat);
 
Si vous voyez l'erreur, merci, si vous le voulez bien, de prendre un peux de votre temps pour m'aider (c'est mon projet de bac, mais là je seche ^^).


Message édité par linck123 le 31-05-2011 à 11:43:07
Reply

Marsh Posté le 31-05-2011 à 11:27:38   

Reply

Marsh Posté le 31-05-2011 à 11:33:30    

SELECT RueGite, CPGite, VilleGite, NbPlaces, NbChambres, Surface, Jardin, gite.MelProprio, NomProprio, RueProprio, CPProprio, VilleProprio, TelProprio FROM gite, proprio WHERE gite.MelProprio = proprio.MelProprio AND proprio.MelProprio = 'exemple@adressemail.fr'

 

mets des ' autour de l'adresse email ( et de toute chaine de caractères constante )

 


Message édité par flo850 le 31-05-2011 à 11:33:47

---------------

Reply

Marsh Posté le 31-05-2011 à 11:38:42    

Fonctionne pas... merci quand même de ta reponse super rapide :)
J'vais test autre chose : utiliser "Numgite" qui est la clé primaire de la table "gite"... J'vous tiens au courant, si sa peux aider quelqu'un plus tard.


Message édité par linck123 le 31-05-2011 à 11:39:11
Reply

Marsh Posté le 31-05-2011 à 11:48:49    

un petit echo mysql_error() peut aussi te donner le messages d'erreur


Message édité par flo850 le 31-05-2011 à 11:48:55

---------------

Reply

Marsh Posté le 31-05-2011 à 11:59:08    

Trop fort Flo :D J'connaissais pas mysql_error(). Merci beaucoup !!
 
P.S: l'erreur venait de ma requête : NoGite = 2 il fallait mettre : gite.NoGite = 2

Reply

Marsh Posté le 31-05-2011 à 12:11:10    

Aller, j'continu a vous embêter lol :
avec mon script, si plusieurs dates de réservations son prises (exemple : du 2011-07-09 jusqu'au 2011-08-09 ET du 2012-07-09 jusqu'au 2012-08-09) toutes les données (infos du gite et du propriétaire) sont affichés deux fois l'unes en dessous de l'autre. Or, je voudrais que seulement les dates réservés se répètes.... Avez-vous une idée?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed