Secondo me ti conviene usare un approccio diverso.
Molto piu' comodo.
Io quando devo fare cose similari prima carico i dati e li metto su variabile e poi li stampo dove serve.
per cui io procederei cosi'
1-Query
2-Controllo ris query
2.1-se ho dati carico i dati e li converto nelle oppurtune stringhe che salvo su varibili distinte
3- controllo di avere caricato i dati
4- stampo i dati precedentemente caricati.
Secondo me e' l'approccio migliore che puoi adottare quando hai problematiche similari.
Codice PHP:
$records_per_row = 3;
$i = 0;
$testi =array();
while ($row=mysql_fetch_array($query)) {
// inserisci i controlli e popoli di dati le celle dell'array
if([controllo1])
$testi[0] .= ".....";
else if([controllo2])
$testi[1] .= ".....";
else
$testi[2] .= ".....";
}
// a questo punto crei i 3 box e li riempi di dati
echo "
<div id=\"box1\">".$testi[0]."</div>
<div id=\"box2\">".$testi[1]."</div>
<div id=\"box3\">".$testi[2]."</div>
";