Я бы определил массив для определения разрешенных сортировок, чтобы вы не отправляли имена таблиц по ссылкам и пользователю (злонамеренный пользователь не знает, что делают сортировки = 1, 2, 3 и т. Д.) И когда Вы печатаете свои ссылки. Я отключил ссылку на сортировку curent (Вы можете использовать css, чтобы она отличалась от остальных, чтобы пользователь знал, где она находится).
Вот пример кода:
<?php
$sorts = array
(
1=>array('order'=>' ORDER BY id', 'name'='case id'),
2=>array('order'=>' ORDER BY id DESC', 'name'='case id desc'),
3=>array('order'=>' ORDER BY firstname', 'name'='case firstname'),
4=>array('order'=>' ORDER BY firstname DESC', 'name'='case firstname desc')
// and so on
);
if(!is_numeric($_GET['sort']))
{
echo 'Invalid sort type !';exit; // use your custom error reporting function.
}
foreach($sorts as $key => $value)
{
$order = ($key == $_GET['sort'])?$value['order']:'';
echo '<td><a href = "example.com?sort='.$_GET['sort'].'" '.(($key == $_GET['sort'])? disabled="disabled":'').'>'.$value['name'].'</a></td>';
}
$query = 'SELECT DISTINCT case, firstname, lastname FROM cases '.$order;
// ...