Filteren van databasegegevens in php
Jeroen van Merode
07/09/2010 14:13:32Geachte Heer/Mevrouw,
Hieronder een ingevulde tabel zoals ik die heb:
Naam: Vakgebied:
------------------------------------
Piet Wiskunde
Klaas Taal
Klaas Duits
Piet Taal
Henk Wiskunde
Henk Taal
Henk Duits
Klaas Wiskunde
-------------------
Nu heb ik 3 dropdown menus waarin de vakgebieden staan.
Door op zoek te klikken krijg ik het wel voor elkaar om een lijst te krijgen van wie vakgebied1 heeft, wie vakgebied2 heeft en wie vakgebied3 heeft. Maar nu het probleem:
Ik zou graag willen dat op het moment dat ik zoek hij alleen de namen laat zien die alle drie de vakgebieden hebben waarop ik zoek. Dus:
Als ik zoek op Taal, Wiskunde en Duits dan wil ik alleen de namen "Henk en Klaas" zien verschijnen.
Hoe ga ik dit doen?
Bij voorbaat dank!
Hieronder een ingevulde tabel zoals ik die heb:
Naam: Vakgebied:
------------------------------------
Piet Wiskunde
Klaas Taal
Klaas Duits
Piet Taal
Henk Wiskunde
Henk Taal
Henk Duits
Klaas Wiskunde
-------------------
Nu heb ik 3 dropdown menus waarin de vakgebieden staan.
Door op zoek te klikken krijg ik het wel voor elkaar om een lijst te krijgen van wie vakgebied1 heeft, wie vakgebied2 heeft en wie vakgebied3 heeft. Maar nu het probleem:
Ik zou graag willen dat op het moment dat ik zoek hij alleen de namen laat zien die alle drie de vakgebieden hebben waarop ik zoek. Dus:
Als ik zoek op Taal, Wiskunde en Duits dan wil ik alleen de namen "Henk en Klaas" zien verschijnen.
Hoe ga ik dit doen?
Bij voorbaat dank!
PHP hulp
18/12/2024 15:05:57Nicoow Unknown
07/09/2010 14:20:00in pseudo code:
$where = ""
foreach vakgebied as $vak
{
if $where is leeg {
$where .= "Vakgebied = '".$vak."'";
} else {
$where .= "AND Vakgebied = '".$vak."'";
}
}
$query = "SELECT naam FROM iets WHERE ".$where."";
$where = ""
foreach vakgebied as $vak
{
if $where is leeg {
$where .= "Vakgebied = '".$vak."'";
} else {
$where .= "AND Vakgebied = '".$vak."'";
}
}
$query = "SELECT naam FROM iets WHERE ".$where."";
Pim -
07/09/2010 14:24:55Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// PHP 5.3
$vakgebieden = array('Wiskunde', 'Duits');
$func = function($vakNaam) { return "Vakgebied = '".$vakNaam."'"; };
$whereParts = array_map($func, $vakgebieden);
$query = "SELECT naam FROM iets WHERE ".implode(' AND ', $whereParts);
// PHP < 5.3
function createWherePart($vakNaam) {
return "Vakgebied = '".$vakNaam."'";
}
$vakgebieden = array('Wiskunde', 'Duits');
$whereParts = array_map('createWherePart', $vakgebieden);
$query = "SELECT naam FROM iets WHERE ".implode(' AND ', $whereParts);
?>
// PHP 5.3
$vakgebieden = array('Wiskunde', 'Duits');
$func = function($vakNaam) { return "Vakgebied = '".$vakNaam."'"; };
$whereParts = array_map($func, $vakgebieden);
$query = "SELECT naam FROM iets WHERE ".implode(' AND ', $whereParts);
// PHP < 5.3
function createWherePart($vakNaam) {
return "Vakgebied = '".$vakNaam."'";
}
$vakgebieden = array('Wiskunde', 'Duits');
$whereParts = array_map('createWherePart', $vakgebieden);
$query = "SELECT naam FROM iets WHERE ".implode(' AND ', $whereParts);
?>
Gewijzigd op 07/09/2010 14:26:14 door Pim -