Il while sembra a posto, ma ti manca il $ davanti a query.=
e dovrebbe essere la causa dell'errore che ricevi.