Meerdere tabellen

Als je complexe websites bouwt, ben je al gauw toe aan het gebruik van meerdere tabellen in een database. Het is van belang dat deze tabellen onderling goede (dat wil zeggen: correcte) relaties bezitten. Je moet tenslotte gegevens uit meerdere tabellen kunnen koppelen. Dan is het noodzakelijk gebruik te maken van subqueries of joins.

De database buurtvereniging bestaat uit 4 tabellen. Stel we willen het lidnummer, de roepnaam en de activiteit waarvoor kinderen zich hebben aangemeld, tonen in een tabel. Deze gegevens staan in twee tabellen, namelijk de tabel inschrijvingen en de tabel activiteiten. We moeten ervoor zorgen dat het activiteitnr in de tabel inschrijvingen overeenkomt met het activiteitnr uit de tabel activiteiten. Op die manier kunnen we de koppeling tussen de twee tabellen waarborgen. Het script ziet er als volgt uit:

<!DOCTYPE html>
<html lang="nl">
     <head>
           <title>kinderen en activiteiten</title>
           <meta charset="utf-8">
           <link rel="stylesheet" href="opmaak.css">
     </head>
     <body>
           <h3>Een overzicht van alle inschrijvingen</h3>
           <table border="1" cellpadding="3">
                 <tr>
                       <th>lidnr</th>
                       <th>roepnaam</th>
                       <th>activiteit</th>


                 </tr>
                 <?php
                 $verbinding = mysqli_connect("localhost",  "enigma",
                    "enigma1234",  "buurtvereniging");


                 $query = "SELECT inschrijvingen.lidnr  roepnaam
                    activiteit FROM inschrijvingen  activiteiten WHERE
                 inschrijvingen.activiteitnr = activiteiten.activiteitnr";
                 $resultaat = mysqli_query($verbinding  $query);
                 while ($row = mysqli_fetch_array($resultaat)) {
                 ?>
                 <tr>
                       <td><?php echo $row['0']; ?></td>
                       <td><?php echo $row['1']; ?></td>
                       <td><?php echo $row['2']; ?></td>
                 </tr>
                 <?php
                 }
                 ?>
           </table>
           <?php
                 mysqli_close($verbinding);
           ?>
     </body>
</html>

 

Let op dat je bij de weergave van het resultaat uitgaat van de nieuw te vormen resultaattabel. Deze bestaat uit drie kolommen (lidnr, roepnaam en activiteit) en derhalve moet je hier de indexen 0, 1 en 2 gebruiken en niet de kolomindexen uit de oorspronkelijke tabellen waaruit de gegevens zijn gehaald.
Het resultaat wordt dan: