Erreur avec ORDER BY !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur avec ORDER BY !

par albat » 28 sept. 2005, 23:24

Comme il est tard, que j'ai les paupières qui tombent et que demain, je ne serai pas là,
je vous fais part de mes soupçons...

Parfois la variable qui contient ta requête s'appelle $sql, parfois c'est $slq...
Serait-ce l'explication ? :?:

par albat » 28 sept. 2005, 23:20

Peux-tu montrer toutes les lignes relatives à l'exécution de cette requête ?
(J'ai une petite idée...) ;)

par rami » 28 sept. 2005, 22:34

Si ID_news est un entier, nul besoin d'apostrophes.

par smarties » 28 sept. 2005, 22:27

Code : Tout sélectionner

$slq = "SELECT * FROM commentaire WHERE ID_news='". $id_news ."' ORDER BY ID DESC";
La valeur $id_news doit être entre apostrophe :wink:

par Invité » 28 sept. 2005, 21:57

voici
$sql="select * from forum where id='$id_ut' order by id";

ça marche trés bien ;)

par Cyrano » 06 sept. 2005, 00:09

Non mais je rêve là : tu essayes d'envoyer du PHP dans le formulaire SQL de phpMyAdmin, c'est normal que ça plante : on envoie du SQL pur dans ce formulaire. donc convertis pour phpMyAdmin mais garde la syntaxe indiquée pour PHP.

par Truc » 05 sept. 2005, 14:17

Voila, en enlevant les guillemets... Ca marche !
tu parles de quels guillemets ?!

sur l'autre image tu teste ds phpmyadmin:
$slq = "SELECT * FROM commentaire WHERE ID_news=". $id_news ." ORDER BY ID DESC";
alors qu'il ne faudrai mettre:
SELECT * FROM commentaire WHERE ID_news=1 ORDER BY ID DESC
où 1 est arbitraire (prend une id_news de ta base

par Ext1cti0n » 05 sept. 2005, 13:55

Image

Voila, en enlevant les guillemets... Ca marche !

Bizaare que sur mon code cela ne fonctionne pas !!

par Invité » 05 sept. 2005, 13:43

Image

Voila ! :shock:

par Cyrano » 04 sept. 2005, 21:03

Alors la requête suivante doit obligatoirement fonctionner:
$slq = "SELECT * FROM commentaire WHERE ID_news=". $id_news ." ORDER BY ID DESC";
Si tu exécutes ça directement dans phpMyAdmin, quel retour as-tu ?

par Ext1cti0n-007 » 04 sept. 2005, 20:42

Heu, y'a 5 champs :

"ID" des commentaires

"ID_news" pour ne pas afficher tous les commentaires de ttes les news à la fois

"pseudo" Pour savoir qui parle

"contenu" Pour savoir ce que le monsieur veut dire

"timestamp" Pour connaitre la date l'heure... à laquelle la personne a posté.

par Cyrano » 04 sept. 2005, 20:30

fais voir la structure de la table ?

par Ext1cti0n-007 » 04 sept. 2005, 20:24

NON !

id_news, c'est pour qu'il n'y ait pas tous les commentaires de toutes les news qui s'affichent à chaque fois !

ID est le vrai nom de champ !

par Cyrano » 04 sept. 2005, 20:21

Et si tu mettais le bon nom de champ ?

Code : Tout sélectionner

"SELECT * FROM commentaire WHERE ID_news=". $id_news ." ORDER BY ID_news DESC";

Erreur avec ORDER BY !

par Ext1cti0n-007 » 04 sept. 2005, 20:15

Je viens, à l'instant, de faire un script pour des commentaires de news.

Je suis content, ça marche, après quelques erreurs résolvés.

Puis, je remarque que les commentaires sont classés par ID dans le sens croissant, donc les derniers commentaires sont tout en bas.

Je décide donc de placer "ORDER BY ID DESC" dans ma requete MySQL !

Mais, je ne sais pas pourquoi, une erreure SQL s'est glissée.

Voici ce que m'affiche PHP :

"mysql_fetch_array(): supplied argument is not a valid MySQL result resource"

Puis, j'ajoute "or die(mysql_error())" pour essayer de voir l'erreur.

Voici la réponse de PHP : "Erreur de syntaxe près de 'BY ID DESC' à la ligne 1"

J'essaye plusieurs chose :

- ordoné par timestamp, meme résultat.
- enlever les majuscules, aucun changement.
- changer l'ordre de ORDER BY avec WHERE

Je ne sais plus quoi faire pour que cela marche, et je ne comprends encore moins pourquoi rajouter ORDER BY créer une erreure SQL.

Voici ma requete :

'SELECT * FROM commentaire WHERE ID_news=' . $id_news . ' ORDER BY ID DESC'