Har du verkligen vissa värden i kolumnen ID som är exakt = "$id" ? För nu kollar du om något värde motsvarar en sträng med de tre tecknen i. Funkar det bättre om du skriver
... WHERE ID = $id AND....
?
Dessutom har du ingen nytta av att ORDER BY ID, du räknar ingenting och eftersom du bara plockar ut ett ID, så det finns ingen poäng med att ordna något.