Requete Mysql

Petit nouveau ! | 5 Messages

28 mai 2010, 15:57

Bonjour a tous,

je cherche deja depuis plusieurs heures un réponse a mon problème et la je seche...

je m'explique, je suis en train de créer une galerie "blog" sur mon site et j'y met des commentaires.

Donc j'ai deux base de données , "galerie" et "commentaires" et j'utilise l'ID de mes posts de galerie pour recuperer les commentaires associés.

Seulement je dois avoir un problème de syntaxe qui m'echappe...
Je recupère la fonction $numero avec un

Code : Tout sélectionner

$numero = $_GET['idpost'];
placé juste avant ma requete que voila :

Code : Tout sélectionner

$requete="SELECT id,id_post,auteur,commentaire,com_date FROM commentaires ORDER BY id WHERE id_post = $numero "; mysql_query($requete) or die(mysql_error()."\n".$requete); // Avec cette boucle, on liste les commentaires : while ($donnees = mysql_fetch_array($requete) )
j'ai deja essayé plusieurs types de syntaxe mais la je ne comprend pas ce qui bug....
sachant que j'ai exactement le même code ailleurs et la ca marche sans problème...

Merci d'avance de votre aide.

Mammouth du PHP | 672 Messages

28 mai 2010, 16:00

Bonjour.

Quel est le problème, au juste ?
- Message d'erreur ? Lequel ?
- Ca fonctionne, mais le résultat ne correspond pas aux attentes ?
- Autre (préciser) ?

Tu as essayé de passer la requête sous PHPMyAdmin (en faisant un echo) ? Ca dit quoi ?

Petit nouveau ! | 5 Messages

28 mai 2010, 16:03

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 'WHERE id_post = 25' at line 1 SELECT id,id_post,auteur,commentaire,com_date FROM commentaires ORDER BY id WHERE id_post = 25
voila ce que ca m'affiche...

Mammouth du PHP | 568 Messages

28 mai 2010, 16:05

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 'WHERE id_post = 25' at line 1 SELECT id,id_post,auteur,commentaire,com_date FROM commentaires ORDER BY id WHERE id_post = 25
voila ce que ca m'affiche...
Ton order by est situé avant ta condition WHERE, je suis pas sur que MySQL aime ça.

Eléphant du PHP | 86 Messages

28 mai 2010, 16:07

Tu mélanges vraiment tout
Donc j'ai deux base de données , "galerie" et "commentaires"
Ce sont des tables qui sont dans la même base de données.
Je recupère la fonction $numero avec un

Code : Tout sélectionner

$numero = $_GET['idpost'];
$numero est une variable et non une fonction

Ton erreur ici est vraiment simple :
mysql_fetch_array prend comme paramètre le résultat d'un mysql_query, la tu lui donnes la chaine de ta requete :
while ($donnees = mysql_fetch_array($requete) )
(au passage, le order by se met après les conditions)
La bonne syntaxe est la suivante :
$requete="SELECT id,id_post,auteur,commentaire,com_date FROM commentaires WHERE id_post = $numero ORDER BY id";
$result = mysql_query($requete) or die(mysql_error()."\n".$requete);
while ($donnees = mysql_fetch_array($result) )
Modifié en dernier par Skikit le 28 mai 2010, 16:10, modifié 2 fois.

Mammouth du PHP | 672 Messages

28 mai 2010, 16:08

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 'WHERE id_post = 25' at line 1 SELECT id,id_post,auteur,commentaire,com_date FROM commentaires ORDER BY id WHERE id_post = 25
voila ce que ca m'affiche...
Il y a une faute de syntaxe dans la requête.

Par curiosité : tu as essayé en plaçant le ORDER BY après le WHERE ?
Je construis toujours mes requêtes comme ça (donc je ne garantis pas que l'erreur soit là :oops: ), et intuitivement ça me semble logique :
Tu ne peux pas demander à trier les résultats avant de les avoir filtrés.

Petit nouveau ! | 5 Messages

28 mai 2010, 16:09

je vais le changer mais je pense avoir deja fait ce test hier soir....

EDIT: ca ne marche toujours pas :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/eikhell/www/commentaires.php on line 35
ma ligne 35 est celle avec ma boucle WHILE

Eléphant du PHP | 86 Messages

28 mai 2010, 16:12

As-tu lu mon message ?

Petit nouveau ! | 5 Messages

28 mai 2010, 16:14

oui d'ailleurs c'est avec ton code que j'ai essayé.

Petit nouveau ! | 5 Messages

28 mai 2010, 16:16

non mais quelle quiche, j'ai mal recopier ton code...

c'est bon ca marche...

je vais aller me tapper la tête contre un mur tellement c'etait simple.....

merci!