Truy vấn đầu tiên của bạn ổn, nhưng sai một chút:
Chỉ cần xem những gì bạn đã làm ở đây:
$rows=mysql_fetch_array($query_run);
while($rows)
{
echo $rows['banner_no'];
echo $rows['banner_name'];
echo "<a href=\"".$rows['Banner_website_url']. "\">";
echo "<img src=\"".$rows['banner_image_url']."\" width=\"100px\" height=\"100px\">";
echo"</a>";
}
điều này sẽ kết thúc trong một "Vòng lặp vô hạn" gây ra $rows
sẽ luôn được thiết lập. Điều bạn cần là:
while($rows=mysql_fetch_array($query_run))
điều này sẽ gây ra myslq_fetch_array
để trả về một dòng mới mỗi khi điều kiện while được kiểm tra. Và nếu tất cả 4 hàng đều được trả về, $rows
sẽ là false và vòng lặp bị dừng.
Và để hoàn chỉnh:Trong Ví dụ thứ hai, bạn đang lặp lại chính xác 4 lần trên hàng CÙNG, bạn chỉ cần tìm nạp một lần bằng cách gọi myslq_fetch_array
.
Một giải pháp khả thi cho điều đó là tìm nạp lại hàng BÊN TRONG vòng lặp while:
$i=4;
while ($i>0){
$rows = mysql_fetch_array(...);
$i--;
}
Tuy nhiên, bạn nên thích giải pháp đầu tiên hơn, vì sau đó bạn không cần quan tâm đến việc số lượng kết quả có khớp với biến trình lặp của bạn hay không.
sidenode:Gọi nó là $row
không có 's', bởi vì bạn luôn chỉ nhận lại MỘT hàng.