Hallo,

Met mijn opleiding ben ik bezig met een webshop met daarin de volgende vraag:
Ik en mijn groepsgenoten willen bij de categorie pagina meerdere categorieën kunnen filteren en dit in de sql query kunnen plaatsen.

Heeft iemand een idee hoe dit moet?
Als je ipv de categorie naam de id in de value van de checkbox kan je de categorie tabel buiten beschouwing laten.

<?php
$sql = "SELECT product_id, p.product_name, p.product_price
	FROM product p
	JOIN categorie_product c USING (product_id)
	WHERE c.categorie_id IN (" . implode(',', $_POST['categorie'] . ')';
?>
Ger, merk wel op dat je zo resultaten dubbel kunt krijgen.
We hebben hem nu zo opgelost. Zo komen de producten tevoorschijn bij de categorieën.

SELECT `product`.`product_id` , `product`.`naam` , `product`.`prijs` , `product`.`omschrijving` , `product`.`voorraad`
FROM `product` , `categorie` , `categorie_product`
WHERE `categorie`.`naam` IN ('Zomer', 'winter')
AND `product` . `product_id` = `categorie_product`. `product_product_id`
AND`categorie`.`categorie_id` = `categorie_product`.`categorie_categorie_id`
GROUP BY naam

En natuurlijk iedereen bedankt voor de hulp!
@Orlando: Weet wel dat je een foute GROUP BY clause hebt. Als je docent een pietje precies is zal hij je daarop aanspreken. In een GROUP BY moeten in principe alle non-aggregate kolommen uit de select. In jouw geval dus allemaal.
@Orlando,
Je gebruikt group_by zonder aggegrate functie, dus heb je hem niet nodig, en het maakt de query alleen maar trager.
Erwin H op 18/12/2013 16:01:54

@Orlando: Weet wel dat je een foute GROUP BY clause hebt. Als je docent een pietje precies is zal hij je daarop aanspreken. In een GROUP BY moeten in principe alle non-aggregate kolommen uit de select. In jouw geval dus allemaal.


Oke dan hebben we hem aangepast, Bedankt!


Reageren