Filteren van databasegegevens in php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen van Merode

Jeroen van Merode

07/09/2010 14:13:32
Quote Anchor link
Geachte 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!
 
PHP hulp

PHP hulp

17/11/2024 21:50:29
 
Nicoow Unknown

Nicoow Unknown

07/09/2010 14:20:00
Quote Anchor link
in 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."";
 
Pim -

Pim -

07/09/2010 14:24:55
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
?>
Gewijzigd op 07/09/2010 14:26:14 door Pim -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.