Здравствуйте.
В процессе работы над проектом возникла следующая задача.
Есть ИБ "job", а в нем множественное свойство "salary" типа число.
В данном свойстве в первом значении хранится нижняя граница зарплаты, во втором верхняя граница.
Для примера salary[0] = 1000 и salary[1] = 5000.
Необходимо таким образом настроить фильтр по этому свойству, чтобы пользователь мог задавать интервал зарплат, например от 500 до 3000. Причем необходимо чтобы значение "от" фильтровало нижнюю границу свойства, а значение "до" - верхнюю.
Например, есть 3 элемента с такой зарплатой:
1) 1000-6000, т.е. salary[0] = 1000, salary[1] = 10000
2) 3000-10000
3) 5000-20000
4) 2000-15000
Если пользователь задал границы от 2500 до 15000, то нужно вывести элементы 2 и 4, т.к. только для них выполняется условие 2500<=salary[0] AND 15000>=salary[1].
Проблема в том, что я не знаю как записать массив arrFilter для такого случая.
Пробовал так:
1.
[CODE]$arrFilter = array(
">=PROPERTY_salary" => "2500",
"<=PROPERTY_salary" => "15000",
)[/CODE]
и
[CODE]$arrFilter = array(
"><PROPERTY_salary" => array("2500", "15000"),
)[/CODE]
Данные варианты работают в том случае если в свойстве salary хранится только одно число, т.е. фактически для одиночного числового свойства
2.
[CODE]$arrFilter = array(
">=PROPERTY_salary" => array(0 => "2500"),
"<=PROPERTY_salary" => array(1 => "15000"),
)[/CODE]
Работает вообще как-то странно. Первое число фильтрует как 2500>=salary[1], а второе как 15000>=salary[0]
3.
[CODE]$arrFilter = array(
"LOGIC" => "AND",
array(">=PROPERTY_bx_num" => "2500"),
array("<=PROPERTY_bx_num" => "15000"),
);[/CODE]
Тут выдает ошибку MySQL - ругается на неизвестное поле BE.0
В поддержку обращался, но там так долго приходится ждать каждого ответа, что за неделю я не продвинулся ни на миллиметр в решении этой проблемы.
Кто что посоветует?