Цитата |
---|
Дмитрий Яковенко пишет:
Если вы вызываете $res->GetNextElement(), то вам нужно вызывать $ob->GetFields() и $ob->GetProperties() Или используйте GetNext(), а в селекте укажите свойства, которые необходимо выбирать. |
Код |
---|
$arOrder = Array(); // сортируем по свойству ID_MSSQL по возрастанию $arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID); // указываем из какого Инфоблока брать данные $arSelectFields = Array("NAME", "PROPERTY_*"); // указываем что нам нужно $res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelectFields); while($ar_fields = $res->GetNext()) { $ar_fieldsID = $ar_fields["PROPERTY_ID_MSSQL_VALUE"]; // здесь есть echo "<br>".$ar_fieldsID." - ar_fieldsID<br>"; $ar_fieldsCWName = $ar_fields["NAME"]; // здесь есть echo $ar_fieldsCWName." - ar_fieldsCWName<br>"; $ar_fieldsCWNameM3 = $ar_fields["PROPERTY_CWNameM3_VALUE"]; // !!!здесь НЕТ echo $ar_fieldsCWNameM3." - ar_fieldsCWNameM3"; } |
Цитата |
---|
Дмитрий Яковенко пишет:
$arSelectFields = Array("ID", "IBLOCK_ID", "NAME", "PROPERTY_ID_MSSQL", "PROPERTY_CWNameM3"); не нужно выбирать все свойства, если Вам нужно только 2. $ar_fieldsCWNameM3 = $ar_fields["PROPERTY_CWNameM3_VALUE"]; // !!!здесь НЕТ а тут все правильно указано и есть элементы с заполненными свойствами? |
Код |
---|
$arSelect = Array("NAME", "PROPERTY_*"); $arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); while($ob = $res->GetNextElement()){ $arFields = $ob->GetFields(); echo '<pre>'; print_r($arFields); // здесь есть echo '</pre>'; $arProps = $ob->GetProperties(); echo '<pre>'; print_r($arProps); // здесь ничего нет echo '</pre>'; } |