Mỗi khi bạn gọi mysql_fetch_array
nó kéo hàng tiếp theo từ truy vấn của bạn. while
đó vòng lặp tiếp tục trả về true trong khi mysql_fetch_array
vẫn còn thứ gì đó để gán cho biến $row2
. Khi nó nằm ngoài hàng, nó sẽ không còn gì để cung cấp biến và giá trị false được trả về.
ETA: Về bit cuối cùng mà bạn đã đề cập, bạn có thể có một số gia tăng thay đổi trong mỗi lần lặp lại của vòng lặp như trong ví dụ của bạn, nhưng nó không hoàn toàn cần thiết. Bạn cũng có thể xem có bao nhiêu hàng được trả về bằng cách thực hiện hành động như $var = mysql_num_rows($data)
trước while
của bạn vòng lặp.