sql >> Database teknologi >  >> RDS >> Mysql

Opret flere tabeller ved at cykle gennem en forespørgsel

Først og fremmest bør du ikke bruge mysql_-funktionerne, de er forældede. Du bør i det mindste skifte til mysqli_ (en ret nem skift), eller bedre, lær hvordan du bruger PDO . Det er lidt anderledes og mere involveret at skifte, men din kode vil være bedre og mere sikker for det.

Med det ude af vejen:din logik er ret præcis. Begrænsning af dine resultater til de 5 bedste resultater for hvert kursus i én forespørgsel er ikke noget, der nemt kan udføres med SQL, så vidt jeg ved, så din plan er god:forespørg på en liste over kurser, cyklus derefter gennem dem med din eksisterende forespørgsel, kør den én gang for hvert kursus, med en LIMIT 5 for at få top 5.

Du kan lige så godt holde bordgenereringen inden for denne løkke, da det er et bord pr. kursus. Du vil gerne flytte VehName-forespørgslen ud af løkken, da du kun behøver at køre den én gang.

Også nogle uopfordrede PHP-råd:enhver tekst uden for taggene vil bare blive udskrevet direkte, så drag fordel af dens indbyggede skabelon og alternativ syntaks for at gøre din tabelgenereringskode pænere:

<?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. Flere MySQL-forekomster på en enkelt maskine

  2. Indsæt data i Postgresql med dublerede værdier

  3. Dato og tid i UTC - hvordan gemmer man dem i postgres?

  4. MySQL vælg, hvor JSON-feltegenskaben har værdi