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.