Sclormu a écrit :
Ben en faite je ne sais pas comment faire le lien qui permet d'appeler la variable...
Et bien il y a plusieurs manières de faire mais puisque tu parles de lien je suppose que tu as quelque chose qui ressemble à un tableau avec quelques colonnes (prix, date, etc...) auxquelles tu voudrais mettre par exemple une flèche vers le haut et une flèche vers le bas pour faire le tri DESCendant ou ASCendant ?
Si c'est bien ça, tu pourrais par exemple avoir comme liens :
* colonne :
prix flèche
haut (du plus grand au plus petit)
-> lien : href = "?tri=prix_desc"
* colonne :
prix flèche
bas (du plus petit au plus grand)
-> lien : href = "?tri=prix_asc"
* colonne :
date flèche
haut
-> lien : href = "?tri=date_desc"
* colonne :
date flèche
haut
-> lien : href = "?tri=date_desc"
remarque : le fait de ne rien mettre avant le ? rappelle automatiquement la page en cours
Ensuite tu récupères la variable
tri en method get et si elle est reconnue comme faisant partie des valeurs possibles tu alimentes ta variable en conséquence, et sinon par défaut. Ce qui donne quelque chose comme :
<?php
// Récupération de la variable tri si elle est dans l'URL
$tri = (!empty($_GET['tri'])) ? $_GET['tri'] : '';
// Liste des valeurs possibles de tri
$tris_possibles = array(
'prix_asc' => 'prix ASC ',
'prix_desc' => 'prix DESC ',
'date_asc' => 'date_annonce ASC ',
'date_desc' => 'date_annonce DESC ');
// Si la variable tri fait partie des valeurs possibles on alimente
// $orderby avec la correspondance, sinon on met une valeur par défaut
if(array_key_exists($tri, $tris_possibles)) {
$orderby = $tris_possibles[$tri];
} else {
$orderby = 'nom_produit ASC '; // valeur par défaut
}
// du code
// plus loin la requête devient
$sel = "SELECT *, date_format(date_annonce, '%d/%m/%Y') as date_annonce FROM $tables WHERE $whereReq ORDER BY $orderby LIMIT ".$start.",".$nb_results_p_page;
// la suite...
?>
A+
Modifié par Heyoan (12 Dec 2007 - 02:12)