De SQL .. Necesitaras crear consultas tipo:
$sql="SELECT * FROM tabla WHERE condiciones ORDER BY campo_a_ordenar";
Si tu quieres hacer un "botón" o "link" para ordenar por cierto criterio (campo) .. puedes componer esa sentencia SQL tipo:
Código PHP:
swich($_GET['orden']){
case "nombre":
$orden_campo = "nombre";
break;
case "ano":
$orden_campo = "ano"; // o como se llame ese campo de "año"
break;
// etc con otros casos ...
}
$sql="SELECT * FROM tabla WHERE condiciones ORDER BY ".$orden_campo;
Y su uso .. Link's con el parámetro "orden" incluido:
<a href="resultados.php?orden=nombre">Ordenar por Nombre</a>
<a href="resultados.php?orden=ano">Ordenar por Año</a>
Puedes usar más SQL .. con un "ASC o DESC" para ordenar en forma ascendente o descendente (se usaría detras del ORDER BY campo ASC ó DESC. Usando la misma técnica podrías hacer link's o botones para odenar por tal campo y además en tal forma.
Uso un "switch()" aunque en este caso parezca un poco redundate por seguridad: no ha de por qué coincidir el nombre de los campos de las tablas de tus BBDD implicadas con el dato que uses en la aplicación para identificar esa situación u orden.
Un saludo,