Essenzialmente il problema della sql injection si ha quando fornisci login e password da una pagina web per entrare nelle aree protette di un servizio.
Esempio. Supponiamo di avere la tabella accessi contenente i campi log_user e pw_user
Supponiamo che le variabili passate da post siano $_POST['login'] e $_POST['password'].
nella tua pagina php di controllo, avrai:
$sql = "SELECT * FROM accessi
WHERE (log_user='" . $_POST['login'] . "' AND pw_user='" . $_POST['password'] . "')";
quindi fornendo come login e password i valori prova prova
si ha:
$sql = "SELECT * FROM accessi
WHERE (log_user='prova' AND pw_user='prova')";
se qualcuno malintenzionato fornisce
sia come login che come passowrd il valore
mio' or '1=1
la variabile $sql diverrebbe:
$sql = "SELECT * FROM accessi
WHERE (log_user='mio ' or '1=1' AND pw_user='mio' or '1=1')";
SICURAMENTE TALE CONTROLLO ANDREBBE A BUON FINE.
Questo comunque è solo un esempio se cerchi in giro per il web trovi molto altro.
Nel tuo caso non dovresti avere particolari problemi in quanto la variabile $_GET la usi dopo ORDER BY quindi non ci sono problemi.