Momenteel ben ik bezig met het maken van een filter functie waarmee mensen op eenvoudige wijze kunnen bepalen welke producten ze willen zien. Hoe meer vinkjes ze aanzetten hoe meer of minder producten er verschijnen.
Zie voorbeeld:
edit: Hmm, afbeelding inladen werkt niet. Oproepen middels browser wel.
Nu werkt het tonen van producten prima. Wanneer ik "Artstone" en "Elho" aanvink worden netjes de producten getoond die zijn gekoppeld aan deze metadata velden. Wanneer ik vervolgens ook "Kunstof" aan vink worden er drie producten getoond die aan Artstone of Elho zijn gekoppeld maar ook aan Kunstof. De rubrieken (Mrken / Materiaal / Vormen) zijn dus onderling AND'S en de velden daaronder (Artstone / Elho / etc.) OR'S.
Nu wil ik ook dat wanneer een klant bijv. Arstone heeft aangeklikt dat de cijfers achter de verschillende rijen geüpdate worden zodat je direct kan zien dat de Elho producten bijv. wel in Kunsstof zijn maar niet in Terrasso.
Dit krijg ik echter niet voor elkaar.
Mijn database structuur
TABEL: product
TABEL: tree -> hier staan de rubrieken in zoals Merken - Materiaal - Vormen
TABEL: product_metadata -> hier staan de velden zoals Artstone / Elho etc..) in
TABEL: _rel_product_metadata -> hier zit de koppeling tussen het product en het metadata veld
Een product krijgt dus meerdere metadata velden toegewezen. In dit voorbeeld: Merken / Materiaal / Vorm.
Voor het produceren van de tree in de afbeelding gebruik ik de volgende query:
Heb verschillende dingen geprobeerd; voor elke waarde een JOIN toevoegen en dan een beperking opleggen met IN, maar door de JOINS gaat de COUNT de mist in...
Wie kan mij hiermee uit de brand helpen?
Zie voorbeeld:

edit: Hmm, afbeelding inladen werkt niet. Oproepen middels browser wel.
Nu werkt het tonen van producten prima. Wanneer ik "Artstone" en "Elho" aanvink worden netjes de producten getoond die zijn gekoppeld aan deze metadata velden. Wanneer ik vervolgens ook "Kunstof" aan vink worden er drie producten getoond die aan Artstone of Elho zijn gekoppeld maar ook aan Kunstof. De rubrieken (Mrken / Materiaal / Vormen) zijn dus onderling AND'S en de velden daaronder (Artstone / Elho / etc.) OR'S.
Nu wil ik ook dat wanneer een klant bijv. Arstone heeft aangeklikt dat de cijfers achter de verschillende rijen geüpdate worden zodat je direct kan zien dat de Elho producten bijv. wel in Kunsstof zijn maar niet in Terrasso.
Dit krijg ik echter niet voor elkaar.
Mijn database structuur
TABEL: product
TABEL: tree -> hier staan de rubrieken in zoals Merken - Materiaal - Vormen
TABEL: product_metadata -> hier staan de velden zoals Artstone / Elho etc..) in
TABEL: _rel_product_metadata -> hier zit de koppeling tussen het product en het metadata veld
Een product krijgt dus meerdere metadata velden toegewezen. In dit voorbeeld: Merken / Materiaal / Vorm.
Voor het produceren van de tree in de afbeelding gebruik ik de volgende query:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| SELECT product.id AS product_id, tree.id AS tree_id, tree.name AS tree_name, product_metadata.id, product_metadata.title, COUNT(_rel_product_metadata.product_id) AS amount FROM tree INNER JOIN product_metadata ON product_metadata.tree_id = tree.id INNER JOIN _rel_product_metadata ON _rel_product_metadata.product_metadata_id = product_metadata.id INNER JOIN product ON product.id = _rel_product_metadata.product_id AND product.online = 1 GROUP BY tree.id, product_metadata.id ORDER BY tree.prio, product_metadata.prio |
Heb verschillende dingen geprobeerd; voor elke waarde een JOIN toevoegen en dan een beperking opleggen met IN, maar door de JOINS gaat de COUNT de mist in...
Wie kan mij hiermee uit de brand helpen?
[ Voor 1% gewijzigd door RobIII op 21-09-2011 22:54 . Reden: afbeelding gefixed... ]