A maneira mais fácil de fazer isso seria colocar um link nos cabeçalhos das colunas, apontando para a mesma página. Na string de consulta, coloque uma variável para que você saiba no que eles clicaram e, em seguida, use ORDER BY em sua consulta SQL para realizar a ordenação.
O HTML ficaria assim:
<th><a href="mypage.php?sort=type">Type:</a></th>
<th><a href="mypage.php?sort=desc">Description:</a></th>
<th><a href="mypage.php?sort=recorded">Recorded Date:</a></th>
<th><a href="mypage.php?sort=added">Added Date:</a></th>
E no código php, faça algo assim:
<?php
$sql = "SELECT * FROM MyTable";
if ($_GET['sort'] == 'type')
{
$sql .= " ORDER BY type";
}
elseif ($_GET['sort'] == 'desc')
{
$sql .= " ORDER BY Description";
}
elseif ($_GET['sort'] == 'recorded')
{
$sql .= " ORDER BY DateRecorded";
}
elseif($_GET['sort'] == 'added')
{
$sql .= " ORDER BY DateAdded";
}
$>
Observe que você não deve pegar o valor $_GET diretamente e anexá-lo à sua consulta. Como algum usuário conseguiu acessar MyPage.php?sort=; EXCLUIR DE MinhaTabela;