Je kan in de URL aangeven hoe je wilt filteren.
Dus standaard toon je alles.
Is de url: zoeken.php?filter=fruit, dan zoek je op fruit (AND type = 'fruit')
Is de url: zoeken.php?filter=groente, dan zoek je op fruit (AND type = 'groente')
Het makkelijkste is om bij het begin te beginnen. Een ongefilderde query.
zoeken.php gewoon, maar je kan ook een voorwaarde maken zoals ?filter=no die de AND voorwaarde niet gebruikt.
if(isset($_GET['cat_id'])) {
if($_GET['cat_id'] == '') {
// query to get all records
$sql = "SELECT * FROM producten WHERE producten.cat_id = '$cat_id'";
}
else{
// query to get all records
$sql = "SELECT * FROM producten WHERE producten.cat_id = '$cat_id'";
}
?>
if(isset($_GET['cat_id'])) {
if($_GET['cat_id'] == '') {
// query to get all records
$sql = "SELECT * FROM producten WHERE producten.cat_id = '$cat_id'";
}
else{
// query to get all records
$sql = "SELECT * FROM producten WHERE producten.cat_id = '$cat_id'";
}
?>
In de IF en ELSE staat exact dezelfde code ...
Als dit, dan doe dit ... en zo niet ... doe dan precies hetzelfde!
Ik zou sowieso een else gebruiken bij je isset-statement. Als $_GET['cat_id'] niet bestaat (dus enkel zoeken.php wordt aangeroepen) dan wil je (denk ik?) je normale ongefilterde query uitvoeren.
[quote="Kees Mulder op 10/01/2019 08:58:59"]
Je krijgt dan het volgende?
<?php
$cat_id = $_GET['cat_id'];
if(isset($_GET['cat_id'])) {
if($_GET['cat_id'] == '') {
// query to get all records
$sql = "SELECT * FROM producten";
}
else{
// query to get all records
$sql = "SELECT * FROM producten WHERE producten.cat_id = '$cat_id'";
}
?>
In de IF en ELSE staat exact dezelfde code ...
Als dit, dan doe dit ... en zo niet ... doe dan precies hetzelfde!