Многократный фильтр запросов с использованием Zend Db - PullRequest
1 голос
/ 08 августа 2011

Я хотел бы создать фильтр цен и категорий, используя PHP и Zend Db. Прекрасно работает, когда фильтр независимо по цене или категории

Как создать следующий запрос с использованием Zend DB

SELECT * FROM `products`  WHERE 
    (
        (price >= '1000') AND (price <= '1500 ')
        OR 
        (price >= '1500') AND (price <= '2000 ') 
    ) 
    AND (category_id = '2') 

Попробовал следующим образом,

$this->where('price > ?', '1000')->where('price < ?', '1500');
$this->orwhere('price > ?', '1500')->where('price < ?', '2000');

$this->where('category > ?', '2');

но генерирует,

SELECT * FROM `products`  WHERE 
    (price >= '1000') AND (price <= '1500 ')
OR 
    (price >= '1500') AND (price <= '2000 ') 
AND (category_id = '2')

Есть идеи?

1 Ответ

1 голос
/ 08 августа 2011
$this->where("
              (price >= '1000') AND (price <= '1500 ') 
              OR (price >= '1500') AND (price <= '2000 ')"
);   
$this->where("category_id =?", 2);
...