Първата ви заявка е добре, но времето е грешно:
Просто вижте какво направихте тук:
$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>";
}
това ще завърши с "безкраен цикъл" причина $rows
винаги ще бъде зададено. Това, от което се нуждаете, е:
while($rows=mysql_fetch_array($query_run))
това ще доведе до myslq_fetch_array
за връщане на нов ред всеки път, когато се проверява условието while. И ако се върнат всичките 4 реда, $rows
ще бъде false и цикълът е спрян.
И за да бъдем завършени:Във втория си пример вие правите точно 4 повторения над СЪЩИЯ ред, току-що извлечете веднъж, като извикате myslq_fetch_array
.
Възможно решение за това ще бъде извличането на реда отново ВЪТРЕ в while цикъла:
$i=4;
while ($i>0){
$rows = mysql_fetch_array(...);
$i--;
}
Все пак трябва да предпочетете първото решение, защото тогава не е нужно да се грижите резултатът да съответства на вашата променлива на итератора.
sidenode:Наречете го $row
без "s", защото винаги получавате само ЕДИН ред назад.