ORDER BY

Signaler
Messages postés
85
Date d'inscription
samedi 30 juillet 2005
Statut
Membre
Dernière intervention
7 mai 2009
-
Messages postés
85
Date d'inscription
samedi 30 juillet 2005
Statut
Membre
Dernière intervention
7 mai 2009
-
    Hello !

    Voila je post parceque je ne trouve vraiment pas de réponse cohérente a mon problème.

    Je désire créer un lien sur une entête de tableau alimenté en mysql qui trierai la colone.

    Par exemple : une colone Nom, une colone Prénom, une colone email...etc...

    On clique sur Nom et les nom de la colones se trie... (alphabétiquement)

    J'ai essayer beaucoup de possibilité, avec switch, avec get $order, $tri, etc...

    Si vous avez une idée ou simplement un liens sur un tuto, ... merci !
   
    Bonne soirée

    Xerox

5 réponses

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Hello,

ta réponse est dans le titre, non ? ORDER BY. Le titre des colonnes ce sera soit un simple lien href avec variable GET, ou du javascript avec submit...
ya aussi des sources javascripts de tableaux qui se réorganisent sans recharger, regarder la source de bultez sur javascriptfr.com
a+
Messages postés
62
Date d'inscription
dimanche 30 juillet 2006
Statut
Membre
Dernière intervention
14 avril 2009

Exemple:
http://tonsite.com/tapage.php
Puis deux liens dans ta page, un pour ASC, et un pour DESC:
http://tonsite.com/tapage.php?ordre=ASC
OU
http://tonsite.com/tapage.php?ordre=DESC

Tu n'as plus qu'à reprendre la variable GET pour l'introduire dans ta requête.

Pensez à mettre une sécurité, que si une personne tente d'afficher la page sans aucune de ces deux variables, qu'elle renvoie automatiquement vers ASC ou DESC.
Exemple:
<?php   
if ($ordre== "")
{
echo "Vous n'avez pas donné de préférences d'affichage...";
}
?>
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Reddragon : tu parles de sécurité mais tu laisses toi-même une faille béante...

on ne met pas

if ($ordre== "")
{
echo "Vous n'avez pas donné de préférences d'affichage...";
}

mais plutôt

if ($ordre != 'DESC' and $ordre != 'ASC')
{
echo "Vous n'avez pas donné de préférences d'affichage...";
}
Messages postés
62
Date d'inscription
dimanche 30 juillet 2006
Statut
Membre
Dernière intervention
14 avril 2009

Merci de corriger!

Je suis débutant, donc je m'excuse!

Mais heureusement tu passe derrière moi et tu me corrige!
Messages postés
85
Date d'inscription
samedi 30 juillet 2005
Statut
Membre
Dernière intervention
7 mai 2009

Hello,

Enfaite ce que j'essaye c'est de trier par critères.
Que pensez vous de ce code ? Merci de votre aide ^^

if ($ordre != 'DESC' and $ordre != 'ASC')
{ $sql = "SELECT * FROM mabase ORDER BY nom";
}
elseif ($ordre != 'DESC' and $ordre != 'ASC')
{ $sql = "SELECT * FROM mabase ORDER BY prenom";
}
else // si rien n'a été précisé
{ $sql = "SELECT * FROM mabase";
}

Et pour les liens :

[liste.php?orderbynom=asc Trier par ordre croissant NOM]
[liste.php?orderbyprenom=desc Trier par ordre décroissant PRENOM]