Tri des données d'un tableau

Eléphanteau du PHP | 24 Messages

20 déc. 2007, 19:29

Bonjour,
Toujours débutant, je sèche sur le problème suivant :
J'affiche des données dans un tableau depuis une bdd mysql selon un classement ID
Les 4 titres de mes 4 colonnes correspondent au nom de chaque champs de ma table, soit id, nom, date, autres info.
Je souhaite pourvoir offrir au visiteur le choix de présenter le classement dans un ordre différent
Exemple : dans l'ordre croissant des noms ou bien par date en cliquant sur le titre de cette colonne (les trois autres colonnes devant bien entendu suivre le classement) et ceci sans javascript.
Je n'ai pas trouvé comment faire. Pouvez-vous me mettre sur la voie ? Merci d'avance. :roll:

ViPHP
AB
ViPHP | 5818 Messages

20 déc. 2007, 20:45

Sur le principe, il faut préparer des requêtes différentes qui seront exécutées en fonction du choix des visiteurs :wink:

Eléphanteau du PHP | 24 Messages

21 déc. 2007, 15:23

J'ai réussi et j'en suis encore sur mon arrière train.
Trop content je dévoile mon oeuvre :

Code : Tout sélectionner

<?php $champs = array( 'Identifiant' => 'id', 'Nom' => 'nom', 'Inscription' => 'date', 'Informations' => 'info' ) ; if((isset($_GET['tri'])) && (isset($champs[$_GET['tri']]))) { $tri = $champs[$_GET['tri']] ; $res = mysql_query('SELECT id, pseudo, date, groupe FROM tbl_user ORDER BY '.$tri.'') or die (mysql_error()); } else echo 'Critère de tri non valide' ; ?> <table><tr><th><a href="mapage.php?tri=Identifiant><Identifiant></a></th> <th><a href="mapage.php?tri=Nom">Nom</a></th> <th><a href=""mapage.php?tri=Inscription">Date</a></th> <th><a href="mapage.php?tri=Informations">Info</a></th></tr> <?php while($donnee = mysql_fetch_assoc($res)) { ?> <tr><td><?php echo $donnee['id'] ; ?></td> <td><?php echo $donnee['nom'] ; ?></td> <td><?php echo $donnee['date'] ; ?></td> <td><?php echo $donnee['info'] ; ?></td></tr> <?php } mysql_close() ; ?> </table>
Voilà, maintenant si on peut améliorer cela en réduisant le code ou en le rendant plus "propre" je suis preneur. Je trouve en effet l'alternance <php> <html> n'est souvent pas des plus gracieuse.
Merci