Het praktische voorbeeld ontleden
Het ging om het volgende voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
//--- het unieke id nummer van een persoon
$id = 1;
//--- selecteer de naam + leeftijd uit de database
$sql = "SELECT t1.id, t1.naam, t2.leeftijd, t2.tid FROM ";
$sql .= "personen AS t1, leeftijden AS t2 ";
$sql .= "WHERE t1.id = " . $id . " AND t2.tid = " . $id;
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
//--- echo de resultaten
echo "De persoon: " . $row['naam'] . " is " . $row['leeftijd'] . " jaar oud.";
/*
mogelijke output:
De persoon: Bas Kreleger is 19 jaar oud.
*/
?>
//--- het unieke id nummer van een persoon
$id = 1;
//--- selecteer de naam + leeftijd uit de database
$sql = "SELECT t1.id, t1.naam, t2.leeftijd, t2.tid FROM ";
$sql .= "personen AS t1, leeftijden AS t2 ";
$sql .= "WHERE t1.id = " . $id . " AND t2.tid = " . $id;
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
//--- echo de resultaten
echo "De persoon: " . $row['naam'] . " is " . $row['leeftijd'] . " jaar oud.";
/*
mogelijke output:
De persoon: Bas Kreleger is 19 jaar oud.
*/
?>
Nu stukje voor stukje:
We halen het id nummer en de naam op uit de eerste tabel. Als 'extra' naam hebben we deze tabel 't1' genoemd. Het is wat verwarrend omdat je nog helemaal niets hebt benoemd, maar gewoon vanaf t1 selecteert. Dat is helemaal waar. De benamingen t1 en t2 komen de regel hierna. Dit is wanneer we de tabellen een 'extra' naam gaan geven, maar van te voren moet je deze dus eerst gebruiken om MySQL te vertellen welk veld uit welke tabel geselecteerd moet worden.
t1.id = personen - veld id
t2.naam = personen - veld naam
t2.leeftijd = leeftijden - veld leeftijd
t2.tid = leeftijden - veld tid
Nu geven we de tabellen een extra naam. Deze naam wordt dus t1 en t2. De tabel personen noemen we t1, en de tabel leeftijden noemen we t2. Je ziet dat dit overeenkomt met de velden hiervoor geselecteerd.
We zeggen hier: tabel naam 'personen' AS t1
Dit betekent: tabel personen geven we als alias de naam t1. Dit gebeurt hetzelfde bij de tabel leeftijden die t2 wordt genoemd.
Nu het 'WHERE' gedeelte. We willen uit de tabel personen (t1) de 'naam' waar de 'id' 1 is. Uit tabel leeftijden (t2) de 'leeftijd' waar 'tid' 1 is.
We zeggen WHERE t1.id.. Dit betekent WAAR tabel1 (personen) het veld 'id' het nummer 1 heeft.
We zeggen hierna: WHERE t2.tid.. Dit betekent WAAR tabel2 (leeftijden) het veld 'tid' het nummer 1 heeft.
Omdat je van te voren de veldnamen 'naam' en 'leeftijd' hebt geselecteerd:
Kun je deze veldnamen dus ook opvragen. Dit kun je doen met dezelfde benaming. Dus t1.naam en t2.leeftijd. Dit werkt als volgt:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
$sql = "De behandelde SQL code";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
echo "Naam: " . $row['naam'] . "<br />";
echo "Leeftijd: " . $row['leeftijd'] . "<br />";
?>
$sql = "De behandelde SQL code";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
echo "Naam: " . $row['naam'] . "<br />";
echo "Leeftijd: " . $row['leeftijd'] . "<br />";
?>
Als je in PHPMyAdmin nou wilt kijken wat hij nou precies doet en hoe het eruit ziet, typ dan de volgende code in je SQL window:
Code (php)
1
2
3
2
3
<?
SELECT t1.id, t1.naam, t2.leeftijd, t2.tid FROM personen AS t1, leeftijden AS t2 WHERE t1.id = 1 AND t2.tid = 1;
?>
SELECT t1.id, t1.naam, t2.leeftijd, t2.tid FROM personen AS t1, leeftijden AS t2 WHERE t1.id = 1 AND t2.tid = 1;
?>
Je krijgt als het goed is het volgende te zien:
Bekijk het volgende hoofdstuk wanneer je wil weten wat je moet doen wanneer er dubbele kolomnamen in het spel zijn.
« vorige pagina | volgende pagina »
Inhoudsopgave
- Selecteren uit meerdere tabellen
- Voorbereiding
- Het echte werk!
- Het praktische voorbeeld ontleden
- Dubbele kolom namen