PHP/MYSQL where, order by et limit

Fermé
kalmec Messages postés 1 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 27 octobre 2007 - 27 oct. 2007 à 01:42
 test - 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
A voir également:

4 réponses

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é !!
14
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.
12
lol, grillé par Alain42 !!
-1
test
-2