Không. mysql_fetch_array
chỉ trả về hàng tiếp theo của kết quả và tăng con trỏ bên trong. Nó không lặp lại. (Bên trong nó có thể có hoặc không sử dụng một số vòng lặp ở đâu đó, nhưng điều đó không liên quan.)
while ($row = mysql_fetch_array($result)) {
...
}
Điều này thực hiện như sau:
-
mysql_fetch_array
truy xuất và trả về hàng tiếp theo - hàng được chỉ định cho
$row
- biểu thức được đánh giá và nếu nó được đánh giá là
true
, nội dung của vòng lặp được thực thi - quy trình bắt đầu lại
Điều này thực hiện như sau:
-
mysql_fetch_array
truy xuất và trả về hàng tiếp theo - hàng được chỉ định cho
$row
-
foreach
lặp lại nội dung của mảng và thực thi nội dung của vòng lặp nhiều lần khi có các mục trong mảng
Trong cả hai trường hợp mysql_fetch_array
làm chính xác những điều tương tự. Bạn chỉ có bao nhiêu vòng lặp như bạn viết. Mặc dù vậy, cả hai cấu trúc không làm cùng một điều. Điều thứ hai sẽ chỉ hành động trên một hàng của kết quả, trong khi điều thứ nhất sẽ lặp lại trên tất cả các hàng.