Het echte werk!
Stel je voor, je hebt twee tabellen. Een tabel genaamd 'personen' en een tabel genaamd 'leeftijden'. De tabel 'personen' bevat de volgende velden:
- id nummer
- een naam
De tweede tabel, de tabel 'leeftijden' bevat de volgende kolommen:
- id nummer
- leeftijd
- tid (een id nummer wat overeenkomt met een id nummer uit de tabel 'Personen')
Je wil nu bijvoorbeeld de naam van iemand weten met bijbehorende leeftijd. Normaal zou je iets doen zoals dit:
Dit voorbeeld heeft geen specifieke checks of een naam bestaat, of het id nummer wel nummeriek is enz. Deze tutorial gaat in principe alleen om het selecteren uit meerdere tabellen!!
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//--- het unieke id nummer van een persoon
$id = 1;
//--- selecteer de naam uit de database
$sql = "SELECT naam FROM personen WHERE id = " . $id;
$res = mysql_query($sql);
$naam = mysql_result($res, 0);
//--- nu zou je denken, ik wil ook de leeftijd, dus nog maar een query!
$sql = "SELECT leeftijd FROM leeftijden WHERE tid = " . $id;
$res = mysql_query($sql);
$leeftijd = mysql_result($res, 0);
//--- echo de resultaten
echo "De persoon: " . $naam . " is " . $leeftijd . " jaar oud.";
/*
mogelijke output:
De persoon: Bas Kreleger is 19 jaar oud.
*/
?>
Wat je ziet, is twee queries. Eén query die de naam ophaalt, en één query die de leeftijd ophaalt.
Je kunt dit ook in één querie doen, gebruik makend van het selecteren uit meerdere tabellen.
Voorbeeld: Nogmaals, geen checks, gaat alleen om de SQL codes!
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.
*/
?>
Uitleg hierover in het volgende hoofdstuk!
Inhoudsopgave
- Selecteren uit meerdere tabellen
- Voorbereiding
- Het echte werk!
- Het praktische voorbeeld ontleden
- Dubbele kolom namen