Pensez à ce que fait votre code. A chaque boucle, vous redéfinissez la $query
variable, de sorte que lorsque vous arrivez à la fin, la valeur finale de $query
sera la dernière chose que vous aurez vérifiée.
Si vous souhaitez toujours utiliser la même logique de boucle que vous avez écrite, ce qui n'est probablement pas le moyen le plus efficace, vous devrez alors exécuter la requête à chaque fois dans la boucle, afin que chaque requête que vous écrivez soit exécutée.
Plus précisément, la confusion semble provenir du fait que vous n'avez pas tout à fait découvert la différence entre l'attribution d'une valeur à une variable et le passage d'une variable à une fonction pour exécution.