Pensa a cosa sta facendo il tuo codice. Ad ogni ciclo stai ridefinendo la $query
variabile, in modo che quando arrivi alla fine, il valore finale di $query
sarà l'ultimo pensiero che hai controllato.
Se desideri comunque utilizzare la stessa logica di ciclo che hai scritto, che probabilmente non è il modo più efficiente, dovresti eseguire la query ogni volta all'interno il ciclo, in modo che ogni query che scrivi venga eseguita.
Più precisamente, la confusione sembra derivare dal fatto che non hai ancora scoperto la differenza tra assegnare un valore a una variabile e passare una variabile a una funzione per l'esecuzione.