Вместо да създавам низ where, първо бих създал масив с части 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
Тогава е лесно да замените ' OR '
с ' AND '
Лесно е да позволите на потребителите да избират между И и ИЛИ за всички части, но не и ако искате да направите това за всеки отделен елемент. Това също е логически проблем. Когато потребителят посочи a OR b AND c
, дали иска (a OR b) AND c
или a OR (b AND c)
?