$ordre = (isset ($_GET['ordre']))? $_GET['ordre']: 'asc';
$sql = "SELECT * FROM prix_pao";
switch ($ordre)
{
case 'asc':
default:
$sql .= " ORDER BY id_prix";
break;
case 'support':
$sql .= " ORDER BY support_prix DESC";
break;
// etc......
}
$sql_retour = mysql_query($sql);
//....tout le code du tableau....
<a href="xxxx.php?ordre=support">support</a> // On récupère le paramètre de l'URL : s'il n'y en a pas, valeur 'ordre croissant' par défaut
$ordre = (isset ($_GET['ordre']))? $_GET['ordre']: 'asc';
//$sql = "SELECT * FROM prix_pao";
if ($_GET['ordre']=='support')
{$sql = "SELECT * FROM prix_pao ORDER BY support_prix ".(($ordre=='support')? 'desc':'asc');}
elseif ($_GET['ordre']=='format')
{$sql = "SELECT * FROM prix_pao ORDER BY format_prix ".(($ordre=='format')? 'desc':'asc');}
elseif ($_GET['ordre']=='couleur')
{$sql = "SELECT * FROM prix_pao ORDER BY couleur_prix ".(($ordre=='couleur')? 'desc':'asc');}
elseif ($_GET['ordre']=='dossier')
{$sql = "SELECT * FROM prix_pao ORDER BY dossier_prix ".(($ordre=='dossier')? 'desc':'asc');}
elseif ($_GET['ordre']=='date')
{$sql = "SELECT * FROM prix_pao ORDER BY date_prix ".(($ordre=='date')? 'desc':'asc');}
elseif ($_GET['ordre']=='imprimeur')
{$sql = "SELECT * FROM prix_pao ORDER BY imprimeur_prix ".(($ordre=='imprimeur')? 'desc':'asc');}
elseif ($_GET['ordre']=='prix')
{$sql = "SELECT * FROM prix_pao ORDER BY prix_prix ".(($ordre=='prix')? 'desc':'asc');}
elseif ($_GET['ordre']=='quantite')
{$sql = "SELECT * FROM prix_pao ORDER BY quantite_prix ".(($ordre=='quantite')? 'desc':'asc');}
elseif ($_GET['ordre']=='graphiste')
{$sql = "SELECT * FROM prix_pao ORDER BY graphiste_prix ".(($ordre=='graphiste')? 'desc':'asc');}
else {$sql = "SELECT * FROM prix_pao ORDER BY id_prix";}
$sql_retour = mysql_query($sql);
et en mettant comme lien
Code : Tout sélectionner
<a href="xxxx.php?ordre=support">
$ordre = (isset ($_GET['ordre']))? $_GET['ordre'] : 'id';
$sql = "SELECT ...
FROM prix_pao
ORDER BY ".mysql_real_escape_string($ordre)."_prix";
Une seule requête et un paramètre qui détermine l'ordre de tri, c'est quand même plus lisible. <?php
if (isSet($_GET['sens']) && $_GET['sens'] == 'asc') // si un sens est spécifié on inverse pour le lien
$sens = 'desc';
else // sinon
$sens = 'asc';
?>
<a href="xxxx.php?ordre=support&sens=<?php echo $sens; ?>" > ... </a>
Et du côté de ta requête suffit de l'inclure (avec les tests qui vont bien au préalable) :
" ORDER BY ".mysql_real_escape_string($ordre)."_prix ".$_GET['sens'];