Hallo iedereen,
laatst vroeg ik hier wat de beste manier is om attractie gegevens in een database op te slaan. Het antwoord heeft me goed op weg geholpen, al zit ik nu met een nieuw probleem. In mijn php file probeer ik alle data uit te lezen, maar mijn INNER JOIN kennis blijkt nog niet zo ver te reiken.
Hieronder een korte uitleg van m'n drie tabellen:
Tabel "attractions": id van de attractie en naam van de attractie
Tabel "attraction_property_types": eigenschappen van de attractie, bvb "bouwjaar", "capaciteit", "fabrikant", ...
Tabel "attractions_properties" die een link legt tussen de twee voorgaande tabellen
attractions
-----------
id (= primaire sleutel van de attractie)
name (= naam van de attractie)
attraction_property_types
-------------------------
id (primaire sleutel van de eigenschap)
value (= naam van de eigenschap, bvb "bouwjaar", "capaciteit", "fabrikant", ...)
attraction_properties
---------------------
id
attraction_id (= foreign key, verwijst naar het id van de attractie)
property_id (= foreign key, verwijst naar het id van de property)
value (= waarde van de eigenschap, bvb "1984", "1000 personen per uur", "Vekoma", ...)
En hier vind je de link zodat je begrijpt welk doel ik voor ogen heb: http://beta.bellewaerdefun.be/het-park/attracties/boomerang
Ik bouw mijn SQL als volgt op:
$sql = "SELECT attractions.name,
attractions.intro,
attractions.extra,
attraction_property_types.type,
attraction_properties.value
FROM attractions
LEFT JOIN attraction_properties ON attractions.id = attraction_properties.attraction_id
LEFT JOIN attraction_property_types ON attraction_properties.property_id = attraction_property_types.id
WHERE attractions.id = '" . $id . "
'";
Vreemd genoeg krijg ik in mijn resultatenset maar één record te zien, terwijl ik al meerdere regels in de tabel "attraction_properties" gestopt heb. Wordt mijn inner join wel goed opgebouwd? Of wat zie ik nog over het hoofd? Alvast bedankt voor de hulp!
3.465 views