Si ho stampato $query e ho provato il risultato in phpmyadmin per vedere se avevo sbagliato qualcosa nella query, invece funziona.
Se eseguo lo script non dà nessun errore.
Quindi ho fatto il debug riga per riga e mi sono accorto che quando mi trovo sulla riga della while e premo il tasto per continuare il debug salta il rigo successivo facendomi capire che nella while non entra proprio.