Tänk på vad din kod gör. Varje slinga omdefinierar du $query
variabel, så att när du kommer till slutet, slutvärdet för $query
kommer att vara den sista tror du kontrollerade.
Om du fortfarande vill använda samma looplogik som du har skrivit, vilket förmodligen inte är det mest effektiva sättet, måste du köra frågan varje gång inom loopen, så att varje fråga du skriver kommer att exekveras.
Mer exakt verkar förvirringen härröra från det faktum att du inte riktigt har upptäckt skillnaden mellan att tilldela ett värde till en variabel och att skicka en variabel till en funktion för exekvering.