Beste mannen,
Ik heb twee tabellen (dit worden er hoogstwaarschijnlijk drie uiteindelijk). Daarbij heb ik negen zoekopties (i.e. filters) waarmee je kunt filteren.
Met behulp van jQuery en JSON haal ik de results op de achtergrond op. Nu vraag ik mij af wat de beste manier is op de query op te bouwen. Ik heb namelijk nu:
Nu werkte ik voorheen altijd met SQL en haalde ik waardes op waarbij ik gewoon deed:
Echter vind ik het smering om allemaal AND erachter te plakken, zeker wanneer je alle filters aanzet. Dan krijg je dus 9 keer AND in je query. Bovendien werk ik met MySQLi en prepared statements, en dus weet ik even niet hoe ik de juiste paramaters moet binden.
Wat is hier een doeltreffende oplossing voor? Wie kan mij een klein beetje in de richting duwen hoe ik makkelijk de query opbouw zonder 9x AND als clausule op te geven. Het liefst met prepared statements
Ik heb twee tabellen (dit worden er hoogstwaarschijnlijk drie uiteindelijk). Daarbij heb ik negen zoekopties (i.e. filters) waarmee je kunt filteren.
Met behulp van jQuery en JSON haal ik de results op de achtergrond op. Nu vraag ik mij af wat de beste manier is op de query op te bouwen. Ik heb namelijk nu:
PHP:
1
2
| $sql = "SELECT * FROM a INNER JOIN b ON a.id = b.id WHERE "; //hier moeten de WHERE clausules komen. |
Nu werkte ik voorheen altijd met SQL en haalde ik waardes op waarbij ik gewoon deed:
PHP:
1
2
3
4
5
| if(a) $sql .= "a.naam = '".$waardeX."'"; if(b) $sql .= "AND b.titel = '".$waardeY."'"; //etc |
Echter vind ik het smering om allemaal AND erachter te plakken, zeker wanneer je alle filters aanzet. Dan krijg je dus 9 keer AND in je query. Bovendien werk ik met MySQLi en prepared statements, en dus weet ik even niet hoe ik de juiste paramaters moet binden.
Wat is hier een doeltreffende oplossing voor? Wie kan mij een klein beetje in de richting duwen hoe ik makkelijk de query opbouw zonder 9x AND als clausule op te geven. Het liefst met prepared statements