Au lieu de lire le résultat entier de votre requête de base de données dans une variable avec fetchAll(), récupérez-le ligne par ligne :
while($row = $query->fetch()) { ... }
Au lieu de lire le résultat entier de votre requête de base de données dans une variable avec fetchAll(), récupérez-le ligne par ligne :
while($row = $query->fetch()) { ... }