Нет загловка
Оглавление сайта

Фильтр

Поиск по маске
//Есть очень большой каталог, несколько тысяч
//нужно сделать выбор по двум словам (например, "Citroen" и "Berlingo"), которые могут содержаться в одном из пользовательских свойств элементов.
//Как сделать через маску?

//1-ый вариант маски:
$arFilter['PROPERTY_a_use'] = "%Citroen%Berlingo%";

//2-ой вариант маски:
$arFilter['?PROPERTY_a_use'] = "Citroen && Berlingo";

//Запрос
$getListFirst = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);

//По производительности 2-ой вариант хуже, так как 1-ый вариант - это обычный LIKE запрос к БД, в то время как 2-ой вариант делает переработку фильтра запроса
//С другой стороны, если в 1-ом варианте поменять местами слова, то ничего не найдется, а во 2-ом - должно сработать.
Фильтр для компонента news.list
$GLOBALS['arrFilter'] = array("PROPERTY_SALELEADER_VALUE" => "Да");

для фильтрации по имени элемента
$GLOBALS['arrFilter'] = array("NAME"=>"A%");
для фильтрации по свойств
$GLOBALS['arrFilter'] = array("PROPERTY_КОД_СВОЙСТВА" => "A%");
для фильтрации по свойству типа "список"
$GLOBALS['arrFilter'] = array("PROPERTY_КОД_СВОЙСТВА_VALUE"=>"А%");
выбрать все элементы у которых свойство "STOP_SHARE" активно
$GLOBALS['arrFilter'] = array("!STOP_SHARE" => false);
выбрать все элементы у которых свойство "PREVIEW_PICTURE" не пустое
$GLOBALS['arrFilter'] = array('ACTIVE' => 'Y', '!PREVIEW_PICTURE'=>false);
выбрать один элемент у которого самая актуальная дата на сегодняшний день
$GLOBALS['arrFilter'] = array('ACTIVE' => 'Y', 'PROPERTY_ISACTION' => '1', '<=PROPERTY_DATEFROM' => date('Y-m-d'));
выбрать все актуальные элементы у которых не просроченная дата(свойство) на сегодняшний день и задано определённое свойство
$GLOBALS['arrFilter'] = array("PROPERTY_КОД_СВОЙСТВА_VALUE" => false, 'ACTIVE' => 'Y', '<=PROPERTY_КОД_СВОЙСТВА_VALUE!' => date('Y-m-d'));
Как получить пустой результат, если в фильтре не задан id элемента:
Так не поможет '=ID' => '' или '=ID' => null или '=ID' => [] или 'ID' => '' или 'ID' => null
Так поможет 'ID' => false. То есть можно перед выборкой приравнять id false, если он пустой