[MySQL / PHP] problème avec une requète je sèche !

problème avec une requète je sèche ! [MySQL / PHP] - SQL/NoSQL - Programmation

Marsh Posté le 18-12-2006 à 19:36:31    

Bonjour a tous,
 
j'ai un petit problème avec une petite requête sql.
 
donc voila,
je fais ça par exemple :
 

Code :
  1. echo $cat;
  2. $req = $req = "SELECT COUNT(f.*) AS NB
  3.   FROM films AS f, lien_film_cat AS l
  4.   WHERE f.id_film = l.id_film AND l.id_cat =$cat";
  5. $echo $req;
  6. $res = mysql_query($req) or die('erreur ! ' . mysql_error());


 
bien sûr mon $id est connu plus haut.
 
un code tout simple, avec une requête toute bête mais y'a un problème !
 
 
mon echo $id m'affiche le bon id
mon echo $req m'affiche la requète avec le bon id (logique)
le mysql_query me retourne l'erreur suivante :

Code :
  1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(champ) AS NB FROM table WHERE .....


des messages comme ça j'en ai déjà vu et j'ai l'habitude  :D (sauf que je ne vois pas l'erreur dans ce cas précis !)
 
OR et c'est là ou je ne pige RIEN, quand je copie la requête affichée par echo $req et que je l'exécute sur phpmyadmin, ben j'ai le bon résultat, donc en gros ma requête ne comporte pas d'erreur (ou je n'ai rien compris :D)
 
est-ce que phpmyadmin et php n'exécutent-ils pas les requêtes de la même façon ???
 
Merci d'avance pour votre aide, perso je sèche !


Message édité par naeh le 19-12-2006 à 17:57:20
Reply

Marsh Posté le 18-12-2006 à 19:36:31   

Reply

Marsh Posté le 18-12-2006 à 21:51:40    

Peut être que PHPMyAdmin se permet de modifier la syntaxe de la requête, c'est possible [:figti]  
(c'est pas gênant l'espace après le "COUNT" :??: )

Reply

Marsh Posté le 18-12-2006 à 22:02:13    

nan ça ne vient pas de là, je l'ai enlevé et même résultat :(

Reply

Marsh Posté le 18-12-2006 à 22:21:18    

Le champ "champ" existe bien :??:  
(t'es connecté à la bonne base ? :whistle: )

Reply

Marsh Posté le 18-12-2006 à 22:51:07    

oui il existe sinon ca marcherait pas avec phpmyadmin, et oui je suis connecté a la bonne base puisque je n'ai que celle là :D
 
Merci les gars, j'espère qu'ensemble on va trouver d'où vient ce bug :)

Reply

Marsh Posté le 19-12-2006 à 10:49:22    

C'est COUNT( et pas COUNT (
Pas d'espaces avant la parenthèse comme mrbebert l'a suggéré ;)

Reply

Marsh Posté le 19-12-2006 à 10:53:15    

nommé une table "table" s'pas terrible hein... je serais pas surpris que phpmyadmin te rajoute des `autour.
Essaye voir:

Code :
  1. $req = "SELECT COUNT(`champ`) AS NB FROM `table` WHERE id = $id";

Reply

Marsh Posté le 19-12-2006 à 10:59:02    

Reply

Marsh Posté le 19-12-2006 à 17:55:49    

j'ai édité le message initial, il y'a la requête telle qu'elle est dans mon code, c'était plus simple avant :)
 
donc en gros : j'ai mes films dans une table, mes catégorie dans une autre, et comme un film peut appartenir a plusieurs catégories, j'ai une table qui fait le lien entre les deux, dedans il y'a le id_film et le id_cat (et c'est la clé).
 
l'espace après COUNT ne pose pas problème parce que j'ai le même résultat en l'enlevant.
 
voilà j'espère que c'est plus clair maintenant :)
 
Merci pour votre aide.
 
 
 
Edit :
je viens de m'en rendre compte que pour ce que je veux (le nombre de films de la cat demandée) il y'a plus simple :

Code :
  1. $req = "SELECT COUNT(id_film) FROM lien_film_cat WHERE id_cat = $cat";


 
ceci devrait marcher sans problème :)
 
 
Mais le problème reste le même par rapport a la première requête, ça marche avec phpmyadmin et pas avec php !


Message édité par naeh le 19-12-2006 à 17:59:52
Reply

Sujets relatifs:

Leave a Replay

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