Excelente, la iniciativa deja buenos resultados!
Sólo un comentario, si 'sort' no fue proporcionada en GET seguramente obtendrás un mensaje de error con ese
if($_GET['sort'] == NULL) porque no puedes comparar una variable (o índice de array) no definida.
Te sugiero usar asignación ternaria, que es como un if, pero en una sola línea, y realizando la comparación de forma adecuada:
Código PHP:
Ver original// Con if normal
(if(empty($_GET['sort'])) { // Empty devuelve verdadero si la variable (o índice):
// No está definida, su valor es null, cero, false o cadena vacía
$order = 'ID';
} else {
}
// Con asignación ternaria:
Ahora, la cuestión de seguridad es muy fácil de resolver creando un array con los campos disponibles para ordenar, ejemplo:
Código PHP:
Ver original$campos = array('ID', 'NOMBRE', 'CATEGORIA', 'ETC');
// Defines el orden:
// Haces una validación
// El campo para ordenar no es válido
// Aquí puedes generar un mensaje de error
// O simplemente asignar el campo por default
$order = 'ID';
}
Lo del ASC o DESC es mucho más sencillo si adaptas lo mismo que hagas para el orden.