Semplicemente perché non entra nel ciclo while se la query non restituisce nulla.



Infatti quando fai
while ($row = mysql_fetch_array($query))

non trova nulla

La connessione, poi, la devi chiudere dopo il while.

mysql_close($db);