Se connecter / S'enregistrer
Votre question

Tri requete php

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
24 Octobre 2008 00:22:23

Bonjour,

J'ai un petit problème pour trier le résultat d'une requête sql
Le code:

  1. $order = htmlspecialchars($_POST['order']);
  2. require ('config.php');
  3. mysql_connect("$host", "$bdd", "$pass");
  4. mysql_select_db("$bdd");
  5.  
  6. $req = mysql_query ("SELECT * FROM jeux ORDER BY '".$order."'");
  7. while ($rep = mysql_fetch_array($req)) {


Le problème c'est que ca ne fonctionne pas... j'ai vérifier le $_POST['order'] il est correct!

Merci de votre aide!

Autres pages sur : tri requete php

24 Octobre 2008 11:18:34

Salut,
1-
la directive order By est associé à un nom de colonne dans la base de données hors toi tu met une constante en le mettant entre cote simple.
2-
Pour que ça fonctionne il faut rajouter le sens
DESC pour descendant
ASC pour ascendant

donc ça donnerait
$req = mysql_query ("SELECT * FROM jeux ORDER BY $order ASC" );
OU

$req = mysql_query ("SELECT * FROM jeux ORDER BY $order DESC" );

Tu devrais avoir un meilleur résultat.

a+
24 Octobre 2008 14:56:03

Bonjour cmagique,

Je pense que l'ordre croissant ou décroissant n'a pas grande importance, je pensais rejouter un post pour classer selon cette manière après avoir résolu ce problème, j'ai tout de même tester et voici ce que ca donne:

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 'DESC' at line 1

Merci quand meme!

EDIT: résolu!
La bonne syntaxe était:
  1. $req = mysql_query ("SELECT * FROM jeux ORDER BY ".$order) or die (mysql_error());
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS