Mysql
 sql >> Baza danych >  >> RDS >> Mysql

zapytanie, aby wyświetlić cztery losowe dane z bazy danych

Twoje pierwsze zapytanie jest w porządku, ale chwila jest nieprawidłowa:

Spójrz tylko, co tutaj zrobiłeś:

$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>";
}

zakończy się to „nieskończoną pętlą”, ponieważ $rows zawsze będzie ustawiony. Potrzebujesz:

while($rows=mysql_fetch_array($query_run))

spowoduje to myslq_fetch_array zwracać nową linię za każdym razem, gdy sprawdzany jest warunek while. A jeśli wszystkie 4 wiersze zostaną zwrócone, $rows będzie fałszywe i pętla zostanie zatrzymana.

I żeby być kompletnym:w drugim przykładzie dokładnie iterujesz 4 razy po TYM SAMYM wierszu, pobrałeś tylko jeden raz, wywołując myslq_fetch_array .

Możliwym rozwiązaniem tego problemu będzie ponowne pobranie wiersza WEWNĄTRZ pętli while:

$i=4;
while ($i>0){
    $rows = mysql_fetch_array(...);
    $i--;
}

Jednak powinieneś preferować pierwsze rozwiązanie, ponieważ wtedy nie musisz uważać, aby liczba wyników była zgodna z twoją zmienną iteratora.

sidenode:nazwij to $row bez „s”, ponieważ zawsze otrzymujesz tylko JEDEN wiersz z powrotem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL grupuje według i max zwraca błędne wiersze

  2. Upuścić bazy danych MySQL pasujące do jakiegoś symbolu wieloznacznego?

  3. Uniemożliwić dwóm użytkownikom edytowanie tych samych danych

  4. Jak efektywnie wstawić dane z pliku CSV do MYSQL przy użyciu Pythona?

  5. Zagnieżdżona pętla w procedurze składowanej mysql