Váš první dotaz je v pořádku, ale hodnota while je chybná:
Podívejte se, co jste udělali zde:
$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>";
}
to skončí "nekonečnou smyčkou" způsobí $rows
bude vždy nastaveno. Potřebujete:
while($rows=mysql_fetch_array($query_run))
to způsobí myslq_fetch_array
vrátit nový řádek pokaždé, když je zaškrtnuta podmínka while. A pokud jsou vráceny všechny 4 řádky, $rows
bude false a smyčka se zastaví.
A abych byl úplný:Ve vašem druhém příkladu přesně 4krát iterujete STEJNÝ řádek, pouze jste načetli jednou voláním myslq_fetch_array
.
Možným řešením je znovu načíst řádek UVNITŘ smyčky while:
$i=4;
while ($i>0){
$rows = mysql_fetch_array(...);
$i--;
}
Měli byste však dát přednost prvnímu řešení, protože pak se nemusíte starat o to, aby počet výsledků odpovídal vaší proměnné iterátoru.
sidenode:Říkejte tomu $row
bez 's', protože vždy dostanete jen JEDEN řádek zpět.