Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как выбрать элемент по нескольким значениям одного свойства?

00 голосов
4
Здравствуйте.

У элемента есть свойство "Привязка к элеметнам" (или "Привязка к элеметнам по XML_ID") с множественной выборкой.
Соответственно я создал элемент и в свойство добавил несколько значений.

Теперь мне надо осуществить выборку этого элемента по значениям того свойства.
Т.е. я могу указать не все значения этого свойства, а только одно и если это значение есть в свойстве элемента, то элемент выбирается.
Так же могу указать все значения свойства элемента и элемент выбериться
Или могу ещё указать значение свойства, которого нет в элементе и тогда элемент не выберется.

Можно ли как нибудь решить это одним запросом?
Что посоветуете.
спросил 31 Янв, 14 от crazy (100 баллов)

4 Ответы

00 голосов
попробуйте так:

Код

$arFilter = array(
    "IBLOCK_ID" => $IBLOCK_ID,  
    array(
        "LOGIC" => "AND",
        array("PROPERTY_PROP1" => 50),
        array("PROPERTY_PROP1" => 60),
    ),
);

$res = CIBlockElement::GetList(array(), $arFilter);



PROP1 - код вашего свойства.
Хотя логическая каша получается какая то :) сам не пробовал. Нет сейчас битрикса под рукой.
ответил 05 Июнь, 14 от Poleolog (1,240 баллов)
00 голосов
Цитата
iandsociety пишет:
Можно ли как нибудь решить это одним запросом?
Не совсем ясно, что именно вы хотите решить одним запросом?

Вы три раза разными способами выбираете (или не выбираете) один и тот же элемент. Есть четвертый способ - указать несколько значений свойства:
Код
$arFilter = array( 
    "IBLOCK_ID" => $IBLOCK_ID,   
    "PROPERTY_PROP1" => Array(50, 60)
); 
Будет работать логика ИЛИ.
ответил 03 Окт, 14 от smileplz (8,020 баллов)
00 голосов
Цитата
Max Pryazhevsky пишет:

Будет работать логика ИЛИ.


тут кажется имелось ввиду, что у элемента есть значение и 50 и 60 сразу. тоесть нам нужно выбрать элемент который привязан сразу к двум элементам, не к одному из, а сразу к двум. Типо логика AND, но для одного свойства, но тогда туфта получается в моем запросе. Если я не правильно понял задачу, поправьте.

Если честно никогда такой задачи еще не возникало. Надо будет подумать.
ответил 04 Фев, 15 от Poleolog (1,240 баллов)
00 голосов
Цитата
Андрей Шилов пишет:
тут кажется имелось ввиду, что у элемента есть значение и 50 и 60 сразу. тоесть нам нужно выбрать элемент который привязан сразу к двум элементам, не к одному из, а сразу к двум. Типо логика AND, но для одного свойства, но тогда туфта получается в моем запросе.


Да, Вы все правильно поняли.
ответил 18 Май, 15 от crazy (100 баллов)

Похожие вопросы

0 голосов
3 ответов
0 голосов
2 ответов
спросил 21 Апр, 14 от BAGIRA (560 баллов)
0 голосов
2 ответов
спросил 04 Дек, 13 от Amentet (2,080 баллов)
0 голосов
6 ответов