Hallo,

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.

Alvast bedankt!
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.
Heb hier even een overzicht gemaakt van de tabel op bouw.

Tabel: product
+------------+---------+---------+-------
| product_id | model | price | etc..
+------------+---------+---------+-------
| 1 | zwart | 10.00 | ...
| 2 | rood | 12.50 | ...
| 3 | groen | 20.00 | ...

Tabel: product_description
+------------+-------------+--------------+-------
| product_id | name | description | etc..
+------------+-------------+--------------+-------
| 1 | ipod hoes | bla, bla.. | ...
| 2 | BB hoes | bla, bla.. | ...
| 3 | iphone hoes | bla, bla.. | ...

Tabel: product_to_category
+------------+-------------+
| product_id | category_id |
+------------+-------------+
| 1 | 20 |
| 2 | 30 |
| 3 | 30 |

Nu wil ik graag de naam en model hebben van alle producten waar category_id bijvoorbeeld 30 is

Dus uitkomst moet dan zijn:

BB hoes Rood
iphone hoes groen

Alvast bedankt.
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.
De enige kolom die ze alle 3 hebben is product_id

dit is de tabellen structuur van alle 3 de tabellen:

oc_products:
product_id
model
sku
upc
location
quantity
stock_status_id
shipping
price
points
tax_class_id
date_available
weight
weight_class_id
length
witdh
height
length_class_id
subtract
minimum
sort_order
status
date_added
date_modified
viewed

Tabel oc_product_description:
product_id
language_id
name
description
meta_description
meta_keywords

Tabel oc_product_to_category:
product_id
category_id

Hopelijk heb je er wat aan want ik kom er niet meer uit.
Bedankt voor de hulp!
Misschien maakt een voorbeeld een hoop helder,

We hebben dus producten en een product kan in 1 of meerdere categoriën vallen.

Tabel product:
product_id
product_model

Tabel product_description:
product_id
product_name
product_description

Tabel category
category_id
category_name

Tabel product_category
category_id
product_id

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 ;)
Wordt al een hoop duidelijk. Helaas ben ik nu op mijn werk, Maar ga er vanavond weer mee bezig. Bedankt in ieder geval.

Reageren