while ($i < $rows)
$rows non è un numero, è un array
dopo il
$rows=mysql_fetch_array($result);
metti
print_r($rows); exit;
vedi cosa stampa.
Inoltre non fai mai $i++ quindi $i vale sempre 0.
EDIT: non vedo la chiusura del while, quindi probabilmente dopo hai altro codice e magari anche $i++, se così fosse, questo ti manda $i fuori indice nel result set del risultato, perché il confronto $i<$rows non è corretto e risulta sempre vero, in pratica andresti in loop, ma lo sforamento dell'indice del result set ti blocca con un errore.