Posez votre question Signaler

PHP/MYSQL where, order by et limit

kalmec 1Messages postés 27 octobre 2007Date d'inscription - Dernière réponse le 10 janv. 2008 à 16:11
Bonjour à tous,
comme tous les gens qui postent un message sur ce forum, j'ai un problème :)
J'aimerais afficher des données en les classant avec where, order et limit.
Le but serait d'afficher les données d'un des fournisseurs d'un champs de la BDD à l'aide d'un WHERE et de pouvoir classer ces données de manière croissante ou décroissante avec ORDER BY (en fonction de leur désignation). Cette première partie marche sans problème
Là ou ça pose problème c'est que j'aimerais maintenant afficher les différents articles par nombre de 5 avec un système de page. Du coup j'essais d'utiliser la clause LIMIT. 2 des paramètres de ces clauses sont des variables et cela me donne toujours l'erreur "Argument is not a valid MYSQL"... Je pense que je fais une erreur de syntaxe, mais impossible de savoir ou, si ça continue je vais jeter mon PC!!! ;)
Voici la requète,
$retour = mysql_query("SELECT * FROM produits WHERE fournisseur= '$fournisseur' ORDER BY designation
LIMIT" .$premier_article.",".$nbre_articles_par_page);
while($donnees = mysql_fetch_array($retour))
{
...
...
}
Quelqu'un pourrait-il m'aider ça serait vraiment sympa et me sortirait une épine de la taille d'une branche du pied :)
Merci d'avance pour vos réponse, elles sont toutes les bienvenues
Tout bon weekend
Lire la suite 

PHP/MYSQL where, order by et limit »

4 réponses
Réponse
+8
moins plus
Bonjour,

Il se peut que tu ais un pb a la fin de ta requete !
LIMIT" .$premier_article.",".$nbre_articles_par_page);
Il me semble que le " est collé au LIMIT (si tu as bien fait un copier/coller), donc la requete qu'il te sort est : LIMIT2 par exemple... ce qu'il ne comprend pas ! De plus le " doit etre collé au . !

D'une maniere générale en PHP qd tu as un bug il faut afficher tes variables et tes requetes (et c'est la que tu vois s'il y a des pbs ou des variables mal remplies) !
donc au lieu de tt faire en 1 ligne, tu le fais en 2 :
1 : $query = "SELECT * FROM produits WHERE fournisseur= '$fournisseur' ORDER BY designation LIMIT ".$premier_article.",".$nbre_articles_par_page;
2 : $retour = mysql_query($query);

Ca te permet d'ajouter un "echo" devant ta ligne 1 qd tu veux tester ton code. La ligne 1 devient :
1: echo $query = "SELECT * FROM produits WHERE fournisseur= '$fournisseur' ORDER BY designation LIMIT ".$premier_article.",".$nbre_articles_par_page;

Voila, en esperant t'avoir aidé !!
Ajouter un commentaire
Réponse
+4
moins plus
Bonjour,

essayes comme ça:
$query="SELECT * FROM produits WHERE fournisseur='".$fournisseur."'ORDER BY designation
LIMIT ".$premier_article.",".$nbre_articles_par_page." ";
$retour = mysql_query($query); 


moi je préfère séparer la question de la commande mysql, c'est plus facile a debugger.

Pour la pagination, vas voir sur google "pagination php" tu trouveras plein d'exemples.
Ajouter un commentaire
Réponse
-4
moins plus
lol, grillé par Alain42 !!
Ajouter un commentaire
Réponse
-5
moins plus
test
Ajouter un commentaire
Ce document intitulé « PHP/MYSQL where, order by et limit » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook