Как в больших запросах использовать between

Прочитал много всего здесь про использование Between в where, но так и не могу понять, как правильно делать? Приведу пример
Например фильтрация по цене, я делал вот так
$where .= ',"AND:price:>=":"'.$ot_price.'"';
        $where .= ',"AND:price:<=":"'.$do_price.'"';
, где $ot_price и $do_price числовые значения. А как быть, когда мне нужно не только между стоимостью фильтровать, но например стоимость и между значениями длины? А если еще и ширины?

Делал аналогично
$where .= ',"AND:length:>=":"'.$ot_length_size.'"';
        $where .= ',"AND:length:<=":"'.$do_length_size.'"';

	$where .= ',"AND:height:>=":"'.$ot_height_size.'"';
        $where .= ',"AND:height:<=":"'.$do_height_size.'"';
, но при тестах фильтрация работает не правильно. Пришлось установить getProducts, в котором всё проверено и точно работает. Может кто знает? Может сам Василий подскажет?

Вот что в логе получается
template:==3, AND:`TVfirm`.`value`:==Luyisi, AND:`TVwidth`.`value`:>==10, AND:`TVwidth`.`value`:<==200, AND:`TVlength`.`value`:>==10, AND:`TVlength`.`value`:<==300, AND:`TVheight`.`value`:>==10, AND:`TVheight`.`value`:<==300, AND:`TVprice`.`value`:>==10000, AND:`TVprice`.`value`:<==500000, modResource.parent:IN(2,22,24,25,23,32,33,34,63,64,65,66,67,68,69,70,71,72,73,75,74,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,20,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62), modResource.published=1, modResource.deleted=0
Николай
15 апреля 2015, 13:44
modx.pro
1 681
0

Комментарии: 2

Василий Наумкин
17 июля 2015, 12:50
0
Вот взял и погуглил за тебя пример BETWEEN в xPDO::where.

И еще советую освоить тег code для оформления кода, иначе следующие вопросы, оформленные подобным образом, я буду просто удалять.
    Николай
    17 июля 2015, 12:52
    0
    Хорошо, спасибо. Посмотрю.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2