Page 1 sur 1

Tri des données d'un tableau

Posté : 20 déc. 2007, 19:29
par stallaf
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:

Posté : 20 déc. 2007, 20:45
par AB
Sur le principe, il faut préparer des requêtes différentes qui seront exécutées en fonction du choix des visiteurs :wink:

Posté : 21 déc. 2007, 15:23
par stallaf
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