Ne. mysql_fetch_array
pouze vrátí další řádek výsledku a posune vnitřní ukazatel. Nezacyklí se. (Interně může nebo nemusí někde používat nějakou smyčku, ale to je irelevantní.)
while ($row = mysql_fetch_array($result)) {
...
}
To provede následující:
mysql_fetch_array
načte a vrátí další řádek- řádek je přiřazen k
$row
- výraz je vyhodnocen a pokud je vyhodnocen jako
true
, provede se obsah cyklu - postup začíná znovu
To provede následující:
mysql_fetch_array
načte a vrátí další řádek- řádek je přiřazen k
$row
foreach
zacyklí obsah pole a provede obsah cyklu tolikrát, kolikrát je položek v poli
V obou případech mysql_fetch_array
dělá přesně to samé. Máte jen tolik smyček, kolik píšete. Oba konstrukty však nedělají totéž. Druhý bude působit pouze na jeden řádek výsledku, zatímco první bude smyčkou přes všechny řádky.