Din första fråga är bra, men tiden är fel:
Titta bara på vad du gjorde här:
$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>";
}
detta kommer att sluta i en "oändlig loop" orsaka $rows
kommer alltid att ställas in. Det du behöver är:
while($rows=mysql_fetch_array($query_run))
detta kommer att orsaka myslq_fetch_array
för att returnera en ny rad varje gång medan villkoret kontrolleras. Och om alla fyra raderna returneras, $rows
kommer att vara falsk och slingan stoppas.
Och för att vara komplett:I ditt andra exempel upprepar du exakt 4 gånger över SAMMA rad, du hämtade bara en gång genom att anropa myslq_fetch_array
.
En möjlig lösning på det är att hämta raden igen INNE i while-loopen:
$i=4;
while ($i>0){
$rows = mysql_fetch_array(...);
$i--;
}
Men du bör föredra den första lösningen, för då behöver du inte se till att resultaträkningen matchar din iteratorvariabel.
sidenode:Kalla det $row
utan "s", eftersom du alltid bara får EN rad tillbaka.