Aller au contenu

trier des donnes MySQL


cybr

Messages recommandés

Bonjour,

Je desirerai trier des donnés issues d'une base de donné comme cela est fait sur "prix du net", c'est a dire laisser au visiteur le choix de trier par prix, par popularité ou autre dans le sens croissant ou decroissant.

Est ce que quelqu'un sait daire ca ??

Lien vers le commentaire
Partager sur d’autres sites

Oui... Grossièrement ils faut utiliser ORDER BY dans tes requetes SQL... Pour l'ordre croissant ou décroissant, il faut utiliser ASC et DESC.

Ex : SELECT * FROM tbl ORDER BY nom ASC

(en supposant que nom soit un champ de la table tbl, ca te fera un classement alphabétique croissant)

Pour limiter les résultats, tu peux utiliser LIMIT lignededebut,nombrederesultats.

Ex : Select * FROM tbl ORDER BY nom ASC LIMIT 0,20

(pour avoir 20 resultats à partir de la 1ere ligne (0)).

Lien vers le commentaire
Partager sur d’autres sites

Il faut que tu construises la requête en fonction de la colonne à trier.

Qd un utilisateur est dans ta page, il peut cliquer sur un lien pour changer de classement. Et ce lien permet de rappeler la page avec un autre paramètre qui est le nom la colonne sur laquelle s'effectuera le tri.

herf="page?tri=popularite

Ensuite, dans ta page tu construis ta requête :

$requete = "SELECT * FROM table ORDER BY " . $GET["tri"];

je garantis pas la syntaxe, mais le principe est là !

Lien vers le commentaire
Partager sur d’autres sites

Il faut que tu construises la requête en fonction de la colonne à trier.

Qd un utilisateur est dans ta page, il peut cliquer sur un lien pour changer de classement. Et ce lien permet de rappeler la page avec un autre paramètre qui est le nom la colonne sur laquelle s'effectuera le tri.

herf="page?tri=popularite

Ensuite, dans ta page tu construis ta requête :

$requete = "SELECT * FROM table ORDER BY " . $GET["tri"];

je garantis pas la syntaxe, mais le principe est là !

On va éviter le $_GET['tri'] dans la requete quand même, c'est pas très propre... Mais le principe est là. :reflechis:

Lien vers le commentaire
Partager sur d’autres sites

Merci de votre aide ca marche seulement j'ai utilisé ca

$afficher=mysql_query("SELECT * FROM table ORDER BY ". mysql_real_escape_string($_GET['order']) ."");

est ce que vous savez comment on peut faire pour que une fois les donnés charge dans l'ordre croissant par exemple le visiteur puisse, en cliquant sur le meme lien les classer dans le sens decroissant ?

Lien vers le commentaire
Partager sur d’autres sites

Pour l'ordre croissant ou décroissant, il faut utiliser ASC et DESC.

Ex : SELECT * FROM tbl ORDER BY nom ASC

(en supposant que nom soit un champ de la table tbl, ca te fera un classement alphabétique croissant)

Je ne fais que citer ce que j'ai écrit plus haut... ASC = ordre croissant, DESC = ordre décroissant. :yes:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...