いいえ。mysql_fetch_array
結果の次の行を返し、内部ポインタを進めます。ループしません。 (内部的には、どこかでループを使用する場合と使用しない場合がありますが、それは関係ありません。)
while ($row = mysql_fetch_array($result)) {
...
}
これにより、次のことが行われます。
-
mysql_fetch_array
次の行を取得して返します - 行は
$row
に割り当てられます - 式が評価され、
true
と評価された場合 、ループの内容が実行されます - 手順が新たに開始されます
これにより、次のことが行われます。
-
mysql_fetch_array
次の行を取得して返します - 行は
$row
に割り当てられます -
foreach
配列の内容をループし、配列内のアイテムの数だけループの内容を実行します
どちらの場合もmysql_fetch_array
まったく同じことをします。書いた数のループしかありません。ただし、どちらの構成も同じことはしません。 2番目は結果の1つの行にのみ作用し、最初の行はすべての行をループします。