Всеки път, когато извикате mysql_fetch_array
той изтегля следващия ред от вашата заявка. Това while
цикълът продължава да връща true, докато mysql_fetch_array
все още има нещо за присвояване на променливата $row2
. След като е извън редовете, няма какво да даде на променливата и се връща false.
ЕТА: По отношение на последния бит, който споменахте, можете да имате променливо увеличение във всяка итерация на цикъла, както във вашия пример, но това не е напълно необходимо. Можете също така просто да видите колко реда са върнати, като направите нещо като $var = mysql_num_rows($data)
преди вашето while
цикъл.