Pokaždé, když zavoláte mysql_fetch_array
vytáhne další řádek z vašeho dotazu. To while
smyčka stále vrací true, zatímco mysql_fetch_array
ještě zbývá něco přiřadit proměnné $row2
. Jakmile je mimo řádky, nemá co dát proměnnou a vrátí se false.
ETA: Pokud jde o poslední bit, který jste zmínil, můžete mít proměnný přírůstek v každé iteraci smyčky jako ve vašem příkladu, ale není to úplně nutné. Můžete také zjistit, kolik řádků bylo vráceno, když uděláte něco jako $var = mysql_num_rows($data)
před vaším while
smyčka.