Здравствуйте.
В процессе работы над проектом возникла следующая задача.
Есть ИБ "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.
и
Данные варианты работают в том случае если в свойстве salary хранится только одно число, т.е. фактически для одиночного числового свойства
2.
Работает вообще как-то странно. Первое число фильтрует как 2500>=salary[1], а второе как 15000>=salary[0]
3.
Тут выдает ошибку MySQL - ругается на неизвестное поле BE.0
В поддержку обращался, но там так долго приходится ждать каждого ответа, что за неделю я не продвинулся ни на миллиметр в решении этой проблемы.
Кто что посоветует?
В процессе работы над проектом возникла следующая задача.
Есть ИБ "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.
Код |
---|
$arrFilter = array( ">=PROPERTY_salary" => "2500", "<=PROPERTY_salary" => "15000", ) |
и
Код |
---|
$arrFilter = array( "><PROPERTY_salary" => array("2500", "15000"), ) |
Данные варианты работают в том случае если в свойстве salary хранится только одно число, т.е. фактически для одиночного числового свойства
2.
Код |
---|
$arrFilter = array( ">=PROPERTY_salary" => array(0 => "2500"), "<=PROPERTY_salary" => array(1 => "15000"), ) |
Работает вообще как-то странно. Первое число фильтрует как 2500>=salary[1], а второе как 15000>=salary[0]
3.
Код |
---|
$arrFilter = array( "LOGIC" => "AND", array(">=PROPERTY_bx_num" => "2500"), array("<=PROPERTY_bx_num" => "15000"), ); |
Тут выдает ошибку MySQL - ругается на неизвестное поле BE.0
В поддержку обращался, но там так долго приходится ждать каждого ответа, что за неделю я не продвинулся ни на миллиметр в решении этой проблемы.
Кто что посоветует?