naar meerdere id's in andere tabel verwijzen
Hallo, ik wil in een tabel naar meerdere id's in een andere tabel verwijzen. Bijvoorbeeld een tabel met recepten, en een tabel met ingredienten. In het veld ingredienten in de tabel 'recepten' moeten meerder id's komen te staan die verwijzen naar records in de tabel 'ingredienten'. bijvoorbeeld het recept voor frisse salade heeft bij ingredienten de waarden 1, 5, 7, 12 die corresponderen met de id's voor sla, tomaat, komkommer en mais in de tabel 'ingredienten'. Met komma's scheiden werkt niet, dan wordt alleen de eerste genoemd. Hoe kan dit wel?
Gewijzigd op 01/01/1970 01:00:00 door Karin php
Voor wat ik heb gehoord is een array in een database-cel zetten niet handig. Om dit op te lossen zou ik een nieuwe tabel maken, waarin ingredient-id én recept id instaat.
Zoiets:
Ik weet niet of je hier ook nog een 'gewoon' id (als Primary key) bij moet zetten. Ook zou je op deze manier erbij kunnen zetten hoeveel gram o.i.d.
Zoiets:
Ik weet niet of je hier ook nog een 'gewoon' id (als Primary key) bij moet zetten. Ook zou je op deze manier erbij kunnen zetten hoeveel gram o.i.d.
Je wil dus: 1 recepten meerdere ingredienten
De beste manier is een koppel tabel maken.
De database structuur ziet er dan b.v. zo uit:
------------
Tabel: recepten
receptid (INT, Primary key, auto_increment)
naam (VARCHAR)
------------
Tabel: recepten_naar_ingredienten
receptid (INT, Primary key)
ingredientid (INT, Primary key)
------------
Tabel: ingredienten
ingredientid (INT, Primary key, auto_increment)
naam (VARCHAR)
De beste manier is een koppel tabel maken.
De database structuur ziet er dan b.v. zo uit:
------------
Tabel: recepten
receptid (INT, Primary key, auto_increment)
naam (VARCHAR)
------------
Tabel: recepten_naar_ingredienten
receptid (INT, Primary key)
ingredientid (INT, Primary key)
------------
Tabel: ingredienten
ingredientid (INT, Primary key, auto_increment)
naam (VARCHAR)
Maar is een array wel mogelijk?
die koppeltabel snap ik niet. hoe zorg je dan dat je salade krijgt die niet alleen uit sla bestaat?
die koppeltabel snap ik niet. hoe zorg je dan dat je salade krijgt die niet alleen uit sla bestaat?
Met LEFT JOIN selecteer je alle ingredienten-rijen (en nog wat gegevens) die in dat product zitten.
Je hebt je product-id?
Die staan ook in die tabel.
Je hebt je product-id?
Die staan ook in die tabel.
maar hoe selecteer je dan meerdere rijen? kan iemand een voorbeeld geven.
Beetje laat, misschien heeft iemand er wat aan.
Selecteer de ingrediënten van recept 1.
In de koppel tabel (recepten_naar_ingredienten) zit dan b.v. :
-------------------------
receptid | ingredientid
1 | 1
1 | 2
1 | 3
2 | 1
2 | 4
De eerste kolom is het recept id en de 2e het ingrediënt id.
Recept 1 en 2 bevatten beiden hetzelfde ingrediënt namelijk het ingrediënt met id 1.
Selecteer de ingrediënten van recept 1.
Code (php)
1
2
3
4
5
2
3
4
5
SELECT ingredientid, naam
FROM ingredienten i,
recepten_naar_ingredienten rni
WHERE rni.receptid = 1
AND i.ingredientid = rni.ingredientid
FROM ingredienten i,
recepten_naar_ingredienten rni
WHERE rni.receptid = 1
AND i.ingredientid = rni.ingredientid
In de koppel tabel (recepten_naar_ingredienten) zit dan b.v. :
-------------------------
receptid | ingredientid
1 | 1
1 | 2
1 | 3
2 | 1
2 | 4
De eerste kolom is het recept id en de 2e het ingrediënt id.
Recept 1 en 2 bevatten beiden hetzelfde ingrediënt namelijk het ingrediënt met id 1.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
'Martijn!:
Recept 1 en 2 bevatten beiden hetzelfde ingrediënt namelijk het recept met id 1.
... namelijk het ingrediënt met id 1




