Trier les colonnes d'un tableau

Fermé
t671 Messages postés 1413 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 24 mars 2023 - Modifié par t671 le 30/11/2012 à 18:34
Bonjour,

J'ai un script qui permet de trier les colonnes d'un tableau.
// Tri sur colonne 
$tri_autorises = array('nom','prenom','date_naissance'); 
$order_by = in_array($_GET['order'],$tri_autorises) ? $_GET['order'] : 'id'; 

// Sens du tri 
$order_dir = isset($_GET['inverse']) ? 'DESC' : 'ASC'; 


// Préparation de la requête 
$sql = " SELECT * FROM ville_bis WHERE sexe LIKE 'F' AND (lieu_mariage_1 LIKE '%ALBE%' OR lieu_mariage_2 LIKE '%ALBE%' OR lieu_mariage_3 LIKE '%ALBE%' OR lieu_mariage_4 LIKE '%ALBE%') AND (SUBSTRING(date_naissance, -4) > '1500' AND SUBSTRING(date_naissance, -4) < '1801' OR date_naissance LIKE '') ORDER BY {$order_by}{$order_dir} "; 
$result = mysql_query($sql); 


// fonction qui affiche les liens 
function sort_link($text, $order=false) 
{ 
 global $order_by, $order_dir; 

 if(!$order) 
  $order = $text; 

 $link = '<a href="?order=' . $order; 
 if($order_by==$order && $order_dir=='ASC') 
  $link .= '&inverse=true'; 
 $link .= '"'; 
 if($order_by==$order && $order_dir=='ASC') 
  $link .= ' class="order_asc"'; 
 elseif($order_by==$order && $order_dir=='DESC') 
  $link .= ' class="order_desc"'; 
 $link .= '>' . $text . '</a>'; 

 return $link; 
} 

// Affichage 
?> 
<table> 
 <tr> 
  <th><?php echo sort_link('Nom', 'nom') ?></th> 
  <th><?php echo sort_link('Prénom', 'prenom') ?></th> 
  <th><?php echo sort_link('Date de naissance', 'date_naissance') ?></th> 
 </tr> 
<?php while( $row=mysql_fetch_assoc($result) ) : ?> 
 <tr> 
  <td><?php echo $row['nom'] ?></td> 
  <td><?php echo $row['prenom'] ?></td> 
  <td><?php echo $row['date_naissance'] ?></td> 
 </tr> 
<?php endwhile ?> 
</table>

J'aurais aimé modifier de façon que dès l'affichage du tableau, la colonne "nom" soit dans l'ordre ASC.
Merci de votre aide.