Hallo,

Ik wil graag met PHP een menukaart genereren.

Als je naar het onderstaande adres gaat wil ik dat alle producten van de categorie 1 worden getoond.
(dat is gelukt).
menukaart.php?cat=1

Maar nu wil ik dat de header van de pagina de categorienaam toont. Dus bij cat=1 : Pizza's.

Ik moet dus meerdere queries queries uitvoeren.

Hoe kan ik dit het beste doen?



Een heel bericht in vet gedrukte letters is nergens voor nodig.

Omdat je de categorie meegeeft in de url, kun je een switch gebruiken om de bijbehorende categorienaam weer te geven.

<?php
switch ($_GET['cat']) {
case 1:
echo "Pizza's";
break;
case 2:
echo "Schotels";
break;
}
?>
Michael - op 19/03/2014 15:38:27

Een heel bericht in vet gedrukte letters is nergens voor nodig.

Omdat je de categorie meegeeft in de url, kun je een switch gebruiken om de bijbehorende categorienaam weer te geven.

<?php
switch ($_GET['cat']) {
case 1:
echo "Pizza's";
break;
case 2:
echo "Schotels";
break;
}
?>


Nee, dat wil ik niet, want namelijk als je een nieuwe categorie toevoegt dan moet je ergens in je script gaan zoenen naar die switch.

Ik wil het uit de database halen met een de WHERE functie.
Kijk zo ziet mijn database eruit:
http://postimg.org/image/w0jzmncm1/
SELECT category_name WHERE category_id = $_GET['cat']
Maar ik heb ook al een query waarin ik de producten toon:

<?php
$sql = "SELECT *";
$sql .= "FROM products";
$sql .= "WHERE product_category =". $_GET["cat"];
?>

Hoe moet ik dit dan combineren?
Met een INNER/LEFT JOIN kun je de 2 tabellen met elkaar koppelen.

<?php
$sql = "
SELECT
p.product_id,
p.product_name,
p.product_price,
p.product_description,
p.product_ingredients,
p.product_category,
c.category_id,
c.category_name
FROM
products AS p
INNER JOIN
categories AS c
ON
p.product_category = c.category_id
WHERE
p.product_category = " . (int)$_GET["cat"]
;
?>

Reageren