Classer les colonnes? Tu veux dire laisser le choix d'ordonner par différents élément, croissant ou décroissant? Comme la liste des membres sur ce forum phpBB?
D'abord tu dois connaître la clause
ORDER BY de MySQL. On peut ordonner des nombres dans l'ordre décroissant en ajoutant le mot
DESC après le nom du champ et en ordre croissant en ajoutant le mot ASC (par défaut, facultatif).
Ordonné par id décroissant :
Ordonné par id croisant :
Maintenant, si tes champs contiennent des chaînes de caractères, ce sera l'ordre alphabétique qui sera appliqué.
Sur mon site, pour la liste des membres, ce que je fais :
Code : Tout sélectionner
<form action="membres.php" method="get">
<p>Trier par : <select name="order">
<option value="pseudo">Pseudo</option>
<option value="date">Date d'inscription</option>
<option value="statut">Statut</option>
</select>
</p>
<p>Dans l'ordre : <select name="sens">
<option value="croissant">Croissant</option>
<option value="decroissant">Décroissant</option>
</select>
</p>
<p><input type="submit" value="Classer" /></p>
</form>
Ensuite, dans mon code PHP, je construis la requête en fonction de ces données :
<?php
$ordre = 'ASC';
$by = 'pseudo';
if (isset($_GET['sens']))
{
if ($_GET['sens'] == 'decroissant')
{
$ordre = 'DESC';
}
else
{
$ordre = 'ASC';
}
}
if (isset($_GET['order']))
{
if ($_GET['order'] == 'pseudo' || $_GET['ordre'] == 'date' || $_GET['order'] == 'statut')
{
$by = $_GET['order'];
}
}
$requete = "SELECT * FROM membres ORDER BY " . $by . " " . $ordre;
?>
Si j'ai bien compris ta question initiale ça devrait t'aider

.
