sql >> Databáze >  >> RDS >> Mysql

dotaz pro zobrazení čtyř náhodných dat z databáze

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.



  1. Jak odstranit z výběru v MySQL?

  2. Jedinečné omezení na kombinaci dvou sloupců?

  3. APPARENT DEADLOCK Vytváření nouzových vláken pro nepřiřazené nevyřízené úkoly

  4. Rozdíl v minutách od dvou časových polí v MySQL