Thay vì tạo chuỗi where, trước tiên tôi sẽ tạo một mảng với các phần 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
Sau đó, thật dễ dàng để thay thế ' OR '
với ' AND '
Thật dễ dàng để cho phép người dùng chọn giữa VÀ và HOẶC cho tất cả các bộ phận, nhưng không phải nếu bạn muốn làm điều đó cho từng mục riêng lẻ. Đó cũng là một vấn đề logic. Khi người dùng chỉ định a OR b AND c
, anh ấy có muốn (a OR b) AND c
hoặc a OR (b AND c)
?