Ik ben al een tijdje bezig met websites maken maar php is nooit mijn sterkste kant geweest.
Nu heb ik een database(van een webshop) en wil ik wat pagina's daar om heen maken. het probleem is nu dat de gegevens die ik nodig ben staan in 3 tabelen
ik wil de naam en model van een product tonen die in een bepaalde categorie staan. Deze tabellen hebben allemaal de product_id
Maar in tabel1 staat het "model"
in tabel2 staat de "naam"
en in tabel3 staat het "categorienummer"
Hoe kan ik deze 3 tabellen koppelen zodat ik naam en model krijg waar categorie nummer b.v. 1 is?
ben de hele avond alweer aan het lezen en testen maar krijg het niet voor elkaar. Vandaar mijn aanmelding bij phphulp.
Waar je naar moet kijken is hoe de tabellen gekoppeld zijn.
Ik denk niet dat je via een categorienummer een model moet vinden. Je moet bij het modelnummer beginnen, deze lijkt mij uniek. Je gaat daarna kijken in tabel2. Hoe wordt de naam van een modelnummer gekoppeld aan die tabel. Als je dat weet, dan kun je gaan kijken in tabel2 naar het categorienummer waarvan je de naam weer kunt halen uit tabel3.
Ingewikkeld verhaal zo. Als je even laat zien wat de structuren van de tabellen zijn dan kunnen we je beter helpen.
Dat 'product_id | name | description | etc..'. Het gaat om de etc. Je moet kijken hoe de producten aan de categorieën gelinkt zijn. Middels een koppel tabel, of direct. Als je dat weet, dan kun je een query uitvoeren waarbij je alle producten uit de database haalt waar category_id 30 is.
Stel je voor we hebben daar een product in staan met het model "a1337" en we willen de naam hier van hebben.
Gaan we eerst op zoek naar het product nummer
SELECT * FROM product AS p WHERE p.model = 'a1337'
Hier krijgen we dus het nummer uit, maar we wouden het model hebben
SELECT * FROM product AS p JOIN product_description AS pd ON pd.product_id = p.product_id WHERE p.model = 'a1337'
Nu krijgen we ook het model er bij, en als we hier weer een categorie bij zouden willen voegen:
SELECT * FROM product AS p JOIN product_description AS pd ON pd.product_id = p.product_id JOIN product_category AS pc ON pc.product_id = p.product_id JOIN category AS c ON c.category_id = pc.category_id WHERE p.model = 'a1337'
We hebben dus net product en product_description kunnen linken op product_id en de categorie kunnen linken via een koppeltabel.
Hopelijk maakt dit het een en ander duidelijker ;)