Místo vytvoření řetězce where bych nejprve vytvořil pole s částmi where.
$whereParts = array();
foreach($aColumns as $i => $column)
{
<logic goes here>
$whereParts[] = 'genre_id IN (1,3,5,6)'; // sample :)
}
$where = 'WHERE ' . implode(' OR ', $whereParts); // note the spaces around OR
Pak je snadné nahradit ' OR '
s ' AND '
Je snadné umožnit uživatelům vybrat si mezi AND a OR pro všechny součásti, ale ne, pokud to chcete udělat pro každou jednotlivou položku. To je také logický problém. Když uživatel zadá a OR b AND c
, chtěl by (a OR b) AND c
nebo a OR (b AND c)
?