Есть каталог товаров, у элементов есть пользовательское свойство принадлежности к определённой группе (кроме обычного разделения по разделам), надо считать количество элементов с заданным пользовательским свойством в разделе. Пользовательское свойство представляет собой множественный список, т.е. один элемент может относится к многим группам по этому свойству.
делал так:
считал, пока не подключил другой инфоблок, всё вроде бы также, только структура поглубже, в общем просто количество считает, а по свойству не выходит уже.
потом вычитал, что щас надо уже считать другой ф-ей, попробовал так:
считает общее количество элементов в инфоблоке не учитывая разделы
$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