Hi, ik ben bezig met een zoekfunctie op een site,
maar zou een combinatie moeten hebben van AND en OR.

ik doe SELECT * FROM db WHERE naam LIKE %var% AND url LIKE %var%

Nu wil ik die AND vervangen door een combinatie van AND en OR, ik dacht meteen aan XOR, maar dan is het ofwel AND ofwel OR.

Ik moet hebben dat het XOR, AND of OR kan zijn.

Dus 2 opties:
• ze mogen allebij die var hebben
• de een mag die var hebben maar niet de andere

Dus 2 opties:
• ze mogen allebij die var hebben
• de een mag die var hebben maar niet de andere


Je moet misschien even met haakjes gaan werken. Weet je zeker dat enkel OR niet werkt in jouw situatie? Daar lijkt het namelijk wel op.

Op deze manier kun je met haakjes werken:

... WHERE (iets1 LIKE waarde1 AND iets2 LIKE waarde2) OR (iets3 LIKE waarde3 OR iets4 LIKE waarde4) AND iets5 LIKE waarde5

(het is maar een voorbeeld)
Of wellicht een radio button of selectievakje op je site, waarmee je kan kiezen voor AND of OR. Die waarde zet je dan in een variabele en die variabele gooi je in je query.

dus $operator = $_POST['operator']

$sql = "SELECT * FROM table WHERE 1=1 AND naam LIKE '%" . $var1 . "%' " . $operator . "url LIKE '%" . $var2 . "%' ORDER BY id LIMIT";

Reageren