Есть каталог товаров, у элементов есть пользовательское свойство принадлежности к определённой группе (кроме обычного разделения по разделам), надо считать количество элементов с заданным пользовательским свойством в разделе. Пользовательское свойство представляет собой множественный список, т.е. один элемент может относится к многим группам по этому свойству.
делал так:
считал, пока не подключил другой инфоблок, всё вроде бы также, только структура поглубже, в общем просто количество считает, а по свойству не выходит уже.
потом вычитал, что щас надо уже считать другой ф-ей, попробовал так:
считает общее количество элементов в инфоблоке не учитывая разделы
$arGroupBy = Array("PROPERTY_INGREDIENTS"=>31);
пишет Array ( [NOP] => 0 )
что за NOP?
как посоветуете считать?
делал так:
Код |
---|
$arOrder=Array("SORT"=>"ASC"); $arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"]); $ListEl = CIBlockSection::GetList($arOrder, $arFilter, true); while($El = $ListEl->Fetch()) { if ($El["DEPTH_LEVEL"] == 3) : $El["ING_EL_CNT"] = CIBlockSection::GetSectionElementsCount($El["ID"], isset($_REQUEST["ING"]) ? Array("PROPERTY"=>Array("INGREDIENTS"=>intval($_REQUEST["ING"]))) : false); $arEl[] = $El; endif; } $arResult["El"] = $arEl; |
считал, пока не подключил другой инфоблок, всё вроде бы также, только структура поглубже, в общем просто количество считает, а по свойству не выходит уже.
потом вычитал, что щас надо уже считать другой ф-ей, попробовал так:
Код |
---|
$arOrder=Array("SORT"=>"ASC"); $arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"]); $ListEl = CIBlockSection::GetList($arOrder, $arFilter, true); while($El = $ListEl->Fetch()) { if ($El['DEPTH_LEVEL'] == 3) : $arOrder = false; $arFilter = Array( "IBLOCK_ID"=>$arParams["IBLOCK_ID"], "IBLOCK_SECTION_ID"=>$El["ID"], ); $arGroupBy = Array("PROPERTY_INGREDIENTS"); $arSelectFields = false; $ListElements = CIBlockElement::GetList($arOrder, $arFilter, $arGroupBy, false, $arSelectFields); $ElCnt = $ListElements->Fetch(); print_r($ElCnt); $El["ING_EL_CNT"] = $ElCnt['CNT']; $arEl[] = $El; endif; } $arResult["El"] = $arEl; |
считает общее количество элементов в инфоблоке не учитывая разделы
$arGroupBy = Array("PROPERTY_INGREDIENTS"=>31);
пишет Array ( [NOP] => 0 )
что за NOP?
как посоветуете считать?
«just for fun» © Linus Torvalds