Non sa cos' è $i
Se dichiarassi

$i = 0;

e poi la stringa della query, allora la var non rimane indefinita e qualcosa ne viene fuori; benché non ancora quello che vuoi, credo.

Mi par di capire che tu debba ciclare la query; e poi il fetch, se ti puoi aspettare un resultset di più righe.