@anton99zel
29а класс средней школы №7

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

Дано:
Элемент ИБ
К нему привязаны элементы этого же ИБ - с помощью CIBlockElement::GetList я получаю ID-ники
Получив для исходного элемента ID-шники элементов к нему привязанных, мне нужно получить ID-шники привязанных уже к ним элементов из второго ИБ.
Не пойму как это сделать.
Чтобы было понятнее, пример:

Есть товар. На странице товара надо показать схожие модели. А в целом все товары имеют цвет. Цвета хранятся в отдельном инфоблоке.
Задача на странице товара получить ID схожих моделей и напротив вывести ID цветов
Вроде все просто, но запутался уже(
<? require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');?>
<!-- Функции -->
<?
if (CModule::IncludeModule("iblock")):
$iblock_id = 66;
$my_slider = CIBlockElement::GetList (
Array("NAME" => "ASC"),
Array('ACTIVE' => 'Y', "IBLOCK_ID" => $iblock_id, "ID"  => #вставляем ID текущего элемента
PROPERTY_OTHER_COLORS,
),
false,
false,
Array(
'ID',
'NAME',
'PROPERTY_OTHER_COLORS'
)
);
while($ar_fields = $my_slider->GetNext())
{echo $ar_fields['NAME'];echo ' - ';echo $ar_fields['PROPERTY_OTHER_COLORS_VALUE'];
//получаем название и ID-шники схожих товаров
}
foreach(array_unique($serialValues) as $value){
//echo "$value";

}
endif;?>
//ниже бестолковый код, можно без него, видимо
<?
if (CModule::IncludeModule("iblock")):
 
	$my_elements = CIBlockElement::GetList (
		Array("ID" => "ASC"),
		Array("IBLOCK_ID" => 75, "ID" =>  #вставив ID цвета получим его название),
		false,
		false,
		Array('ID', 'NAME', 'PREVIEW_PICTURE')
	);
 
	while($ar_fields = $my_elements->GetNext())
	{
 $IMGID = $ar_fields['ID'];
 $URLCV = $ar_fields['NAME'];
 $URL = CFile::GetPath($ar_fields['PREVIEW_PICTURE']);
echo  $URLCV; 
	}

endif;
?>
  • Вопрос задан
  • 238 просмотров
Пригласить эксперта
Ответы на вопрос 1
@haramba
Почему вопросы о про битрикс такие тупые?
Немного другой код, но суть та же,
в данном случае ИБ товары - ИБ производители - ИБ цвета
CModule::IncludeModule("iblock");

	$res = CIBlockElement::GetList(
		Array("NAME" => "ASC"), 
		Array("IBLOCK_ID"	 => 8, "ID" => 5346), 
		false, 
		false, 
		Array(
			'ID',
			'NAME',
			'PROPERTY_MANUFACTURER.PROPERTY_TESTLINK',
		)
	);
	while ($item = $res->GetNext())
	{
		echo '<pre>';
		print_r($item);
		echo '</pre>';
	}


Спасибо за вопрос, заодно сам запомнил лучше.
Ответ написан
Ваш ответ на вопрос

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

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