Het praktische voorbeeld ontleden

Het ging om het volgende voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.
*/

?>


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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$sql
= "SELECT t1.id, t1.naam, t2.leeftijd, t2.tid FROM ";
?>


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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$sql
.= "personen AS t1, leeftijden AS t2 ";
?>


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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$sql
.= "WHERE t1.id = " . $id . " AND t2.tid = " . $id;
?>


Omdat je van te voren de veldnamen 'naam' en 'leeftijd' hebt geselecteerd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$sql
= "SELECT t1.id, t1.naam, t2.leeftijd, t2.tid FROM ";
?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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 />";
?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>


Je krijgt als het goed is het volgende te zien:

Afbeelding

Bekijk het volgende hoofdstuk wanneer je wil weten wat je moet doen wanneer er dubbele kolomnamen in het spel zijn.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Selecteren uit meerdere tabellen
  2. Voorbereiding
  3. Het echte werk!
  4. Het praktische voorbeeld ontleden
  5. Dubbele kolom namen

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.