5.8 Het werken met meerdere tabellen
De tabel vlaggen bevat 3 velden, namelijk vlag_id , land_id en vlag_link. Primaire sleutel is vlag_id. Het datatype is int (3) en als extra kiezen we voor auto-increment. Ook land_id is van het type int (3). De kolom vlag_link is van het type varchar (55).
We moeten ervoor zorgen dat het land_id in de tabel vlaggen overeenkomt met het land_id van de tabel landen. Op die manier kunnen we de koppeling tussen de twee tabellen waarborgen.
Stel we willen nu een resultaattabel hebben waarin alleen de naam van het land en de vlag voorkomen. Het script ziet er als volgt uit:
<html> <head> <title>Europese landen met vlag</title> </head> <body> <h2>Europese landen met vlag</h2> <table border="1" cellpadding="2"> <tr> <th>land</strong></th> <th>vlag</th> </tr> <?php include("includes/verbinding.inc.php"); $sql = "SELECT landen.land , vlaggen.vlag_link FROM landen , vlaggen WHERE landen.land_id = vlaggen.land_id AND landen.werelddeel = \"Europa\"" or die("kan query niet uitvoeren"); $resultaat = mysql_query($sql); while ($row = mysql_fetch_row($resultaat)) { ?> <tr> <td><?php print($row['0']); ?></td> <td><img src="<?php print($row['1']); ?>"></td> </tr> <?php } ?> </table> </body> </html>
Let op dat je bij de weergave van het resultaat uitgaat van de nieuw te vormen resultaattabel. Deze bestaat uit twee kolommen (land en vlag) en derhalve moet je hier de indexen 0 en 1 gebruiken en niet de kolomindexen uit de oorspronkelijke tabellen waaruit de gegevens zijn gehaald.
Het resultaat ziet er dan als volgt uit:
