[SQL]probleme avec une requete

probleme avec une requete [SQL] - PHP - Programmation

Marsh Posté le 03-12-2002 à 08:56:40    

bonjour, je suis etudiant et notre prof (un boulay) nous demande qq chose  
j ai fait ca :  
 

Code :
  1. <html><head><title>le script qui affiche la liste des
  2. produits</title></head>
  3. <body>
  4. <?php
  5. $connect=odbc_connect("lafleur1","SYSDBA","masterkey" );
  6. $query="SELECT pdt_ref, pdt_designation , pdt_prix , pdt_image
  7.         FROM categorie, produit
  8.         WHERE produit.pdt-categorie=categorie.cat_code
  9.         AND cat_libelle='$fields[0]'; ";
  10. $result=odbc_do($connect,$query);
  11. if ($connect)
  12.     {
  13.      while (odbc_fetch_into($result,&$raws))
  14.             {
  15.              for ($i=0;$i<6;$i++)
  16.              {echo '$raws[$i]<br>';}
  17.            
  18.             }
  19.      }
  20. odbc_close($connect);
  21. ?>
  22. </body></html>


 
mais il y a un probleme sur la requete sql mais je ne voit pas ou elle m a lair d etre conforme ;)  
le fields[0] est une variable recuperer d un autre scrip php qui marche impec, peut etre y a t il une erreur sur la facon dont j ai ecrit le fields[0] ??
voila merci d avance ;)


Message édité par GUG le 03-12-2002 à 09:02:22
Reply

Marsh Posté le 03-12-2002 à 08:56:40   

Reply

Marsh Posté le 03-12-2002 à 09:11:15    

produit.pdt-categorie ne srait pas plutôt produit.pdt_categorie ?
 
SELECT pdt_ref, pdt_designation , pdt_prix , pdt_image ne serait pas SELECT pdt_ref.*, pdt_designation.*, pdt_prix.*, pdt_image.* ?
 
Pourquoi un ; à la fin de la requête AND cat_libelle='$fields[0]'; ";

Reply

Marsh Posté le 03-12-2002 à 10:36:00    

le ; pour fermer la requete sql et le 2eme pour finir la requete php  
non ?
 
et pour les select et les tables c ok ;) j ai bien verifier :D

Reply

Marsh Posté le 03-12-2002 à 10:38:01    

j ai que 2 tables : categorie et reference ;) et les nom des tableset champs sont corrects ;)  
 
 


Message édité par GUG le 03-12-2002 à 10:38:07
Reply

Marsh Posté le 03-12-2002 à 10:41:43    

GUG a écrit a écrit :

le ; pour fermer la requete sql et le 2eme pour finir la requete php



 
Non. Pas besoin du premier ;.

Reply

Marsh Posté le 03-12-2002 à 10:43:58    

rahh c peut eter de la que veitn l erreur j essaye merci :)

Reply

Marsh Posté le 03-12-2002 à 10:47:27    

j ai tjrs la meme errure en fait ;)  
Warning: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu., SQL state 07001 in SQLExecDirect in d:\program files\easyphp\www\benoit\lafleurv2\listpdt.php on line 12
 
 
je comprend pas  

Reply

Marsh Posté le 03-12-2002 à 11:38:48    

SELECT pdt_ref, pdt_designation , pdt_prix , pdt_image  
          FROM categorie, produit
          WHERE produit.pdt-categorie=categorie.cat_code
          AND cat_libelle='$fields[0]'
 
Ce ne serait pas plutôt pdt_categorie?
 
Sinon, fais attention que les champs affichés ne soient pas communs aux deux tables (vu la nomenclature, ce ne semble pas être le cas).
 
Sinon, tu peux faire un echo $query, pour voir la requête exécutée et la lancer manuellement.

Reply

Marsh Posté le 03-12-2002 à 11:40:14    

Je ne sais plus quoi dire ... c'est difficile sans les tables sous les yeux.
 
Peut-être ne sait-il pas où sélectionner pdt_ref, pdt_designation , pdt_prix , pdt_image : dans categorie ou produit ? Il faut peut être faire ça comme ça : SELECT categorie.*, produit.* ?
 
a+

Reply

Marsh Posté le 03-12-2002 à 11:41:04    

Fred999 a écrit a écrit :

 
Ce ne serait pas plutôt pdt_categorie?



 
Regardes plus haut :).

Reply

Marsh Posté le 03-12-2002 à 11:41:04   

Reply

Marsh Posté le 03-12-2002 à 12:55:49    

Hansolo a écrit a écrit :

 
 
Regardes plus haut :).




 
Effectivement :D :jap:

Reply

Marsh Posté le 03-12-2002 à 15:03:47    

Moi quand j'ai un pb de ce genre, je fais un petit truc comme ca :
 
 
echo $query;
 
c'est tout bète et ca peut rapporter gros car je me demande si ca ne provient pas de ca  
 

Citation :

cat_libelle='$fields[0]';


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 03-12-2002 à 15:42:45    

[citation][nom]
 

Citation :

cat_libelle='$fields[0]';


[/citation]
Ouais, moi j'aurai écrit :
cat_libelle='".$fields[0]."'"

Reply

Marsh Posté le 03-12-2002 à 16:00:48    

Pas besoin car $fields[0] ne contient pas de guillemets. Si cela aurait été écrit ainsi : $fields["0"], alors là oui il fallait écrire ".$fields["0"].".

Reply

Marsh Posté le 03-12-2002 à 16:06:18    

A voir, je pense quand meme que le fait d'afficher la query permet de se rendre compte de certains pbs.
 
Je vois par ailleur qu'aucun test n'est effectué sur la présence ou non de la variable ??


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 03-12-2002 à 19:04:38    

oui en effet aucun test n est effectuer sur la presence de la variable desoler  
sinon pour les " " ou ' ' avec fields et les . aussi j ai essayer pas mal de combinaisons  
j essairais  a mon prochain cour le echo sur le $query
et ferais un test de presence de variable, y avais pas penser lol :(

Reply

Sujets relatifs:

Leave a Replay

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