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

Twórz wiele tabel, cyklicznie przechodząc przez zapytanie

Po pierwsze, nie powinieneś używać funkcji mysql_, są one przestarzałe. Przynajmniej powinieneś przełączyć się na mysqli_ (dość łatwy przełącznik) lub lepiej, naucz się używać PDO . Zmiana jest nieco inna i bardziej skomplikowana, ale Twój kod będzie dla niej lepszy i bezpieczniejszy.

Pomijając to:twoja logika jest całkiem dokładna. Ograniczanie wyników do 5 najlepszych wyników dla każdego kursu w jednym zapytaniu nie jest to łatwe do wykonania za pomocą SQL według mojej wiedzy, więc twój plan jest dobry:zapytaj o listę kursów, a następnie przejdź przez nie z istniejącym zapytaniem, uruchamiając je raz dla każdego kursu, z LIMIT 5, aby uzyskać pierwsze 5.

Równie dobrze możesz zachować generowanie tabeli w tej pętli, ponieważ jest to tabela na kurs. Chciałbyś usunąć zapytanie VehName z pętli, ponieważ wystarczy uruchomić je tylko raz.

Również kilka niechcianych porad PHP:każdy tekst poza znacznikami będzie po prostu wyprowadzany bezpośrednio, więc skorzystaj z jego wbudowanych szablonów i alternatywna składnia aby ulepszyć kod generowania tabeli:

<?php
   /* Gather your data here... */
?>
<table>
  <tr><th>Best Scores for <?php echo $vehName['Veh_name'] ?></th></tr>
</table>
<table border='1'>
  <tr>
    <th>Course</th>
    <th>Score</th>
    <th>Distance</th>
    <th>Player</th>
    <th>Time</th>
  </tr>
  <?php while($row = mysql_fetch_array($result_HiScores)): ?>
  <tr>  
    <td><?php echo $row['course'] ?></td>
    <td><?php echo $row['score'] ?></td>";
    <td><?php echo $row['distance'] ?></td>";
    <td><?php echo $row['User'] ?></td>";
  </tr>
  <?php endwhile; ?>
</table>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grupuj SQL według daty, ale pobieraj również daty bez rekordów

  2. Błąd MySQL składnia 1064, ale wszystko wydaje się w porządku

  3. jak usunąć zduplikowane wiersze z tabeli w mysql

  4. Uruchom localhost w systemie Mac OS X Yosemite

  5. Utwórz procedurę składowaną MySQL za pomocą JPA Hibernate