[Tableaux] Tri d'un tableau
Bonsoir à tous,
voila j'ai un tableau dans lequel j'affiche les résultats d'une requête.
J'ai fait des focntions de tri, pour pouvoir trier de maniére croissante ou décroissante.
Les voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| //Gestion de la variable tri pour générer le tri sur le requête
if (isset($_GET['tri']) and !empty($_GET['tri']) and !$_GET['tri']=="")
{
switch($_GET['tri'])
{
case "marque" : $tri = " ORDER BY log_marque"; break;
case "libelle" : $tri = " ORDER BY log_libelle"; break;
case "version" : $tri = " ORDER BY log_version"; break;
case "famille" : $tri = " ORDER BY log_famillelogiciel"; break;
case "description" : $tri = " ORDER BY log_description"; break;
case "numserie" : $tri = " ORDER BY log_numserie"; break;
case "nblicences" : $tri = " ORDER BY log_nblicences"; break;
case "typelicence" : $tri = " ORDER BY log_typelicence"; break;
case "datefinvalidite" : $tri = " ORDER BY log_datefinvalidite"; break;
default : $tri = " ORDER BY log_idlogiciel";
}
}
else
{
$tri = " ORDER BY log_idlogiciel";
}
//Gestion de la variable ord pour générer le type de tri (croissant ou décroissant) sur le requête
if (isset($_GET['ord']))
{
switch($_GET['ord'])
{
case "asc" : $ord = " asc"; $ord2 = "desc"; break;
case "desc" : $ord = " desc"; $ord2 = "asc"; break;
default : $ord = " asc"; $ord2 = "desc";
}
}
else
{
$ord = " asc"; $ord2 = "desc";
}
$smarty->assign("tri",$tri);
$smarty->assign("ord",$ord);
$smarty->assign("ord2",$ord2); |
Ensuite j'ai un fichier tpl (template avec smarty) dans lequel j'affiche mon tableau et également le tri sur les entétes.
Voici le code d'une entéte pour le tri :
Code:
<td><a href="bilan_logiciel.php?tri=marque&ord={if isset($tri) && $tri=='marque'}{$ord2}{else}{'asc'}{/if}">Titre</a></td>
Le tri fonctionne parfaitement cependant, il me permet que le tri croissant soit "ASC", il boucle toujours sur mon else de ma fonction...
Quelqu'un voit une solution?
Merci