@countZer0

Как отфильтровать элементы по ID свойства?

Всем привет !

Есть пользовательское свойство (привязка к элементам) в котором хранится ID диеты. Сами диеты - это элементы в инфоблоке, в котором есть свойства (множественная привязка к элементам) по дням недели. То есть в карточке пользователя выбирается диета, в которой уже по дням недели есть привязка к элементам в другом инфоблоке(блюда). Нужно выбрать все элементы(блюда) в соответствии с выбранной диетой у пользователя. Сейчас у меня есть такой вариант, но он выбирает все, без фильтрации по ID диеты:

$arFilter = Array(
  "IBLOCK_ID" => 19,  
  "ACTIVE"    => "Y",
  "!ID"       => \CIBlockElement::SubQuery("PROPERTY_MON", array(
    "IBLOCK_ID"          => 19,
    "ID"=>$b // $b=тут хранится ID диеты.
  ))
);
  
$productQuery = \CIBlockElement::GetList(
  [],
  $arFilter,
  false,
  false,
  [
    "ID",
    "IBLOCK_ID",
    "NAME",
    "PROPERTY_MON"
  ]
);

while( $arElement = $productQuery->fetch() )
{
  echo "<pre>";
  var_dump($arElement);
  echo "</pre>";
}
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
@PetrPo
Мне кажется с фильтром ты перемудрил, попробуй просто
$arFilter = Array(
  "IBLOCK_ID" => 19,  
  "ACTIVE"    => "Y",
  "PROPERTY_<b>код свойства</b>" => $b
);


UPD выше не верно!!!
2-мя запросами можно сделать:
- в первом зная id диеты получаешь id-шники связанных элементов
- во втором зная связанные id-шники получаешь эти элементы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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