7381 Андрей Барткевич 30 Января 2017



Как подсчитать количество элементов инфоблока

Наверное многие, читая руководство для разработчиков битрикса, опускают некоторые моменты и особенности. А затем мучаются и пишут костыли для решения той или иной задачи или проблемы.

А нужно лишь вернуться к определенной его теме и еще раз внимательно все прочитать.

Возьмем типичный пример: нужно посчитать количество элементов в инфоблоке, которые соответствуют каким-то параметрам. Что обычно делают люди: делают выборку, затем формируют в цикле массив элементов. После этого либо в цикле устанавливают счетчик для подсчета, либо после формирования массива выполняют функцию count(), которая высчитывает количество элементов.

Но зачем проделывать столько ненужных манипуляций, ведь все решается гораздо проще:

//подключаем модуль инфоблоков, если он не подключен ранее 
 CModule::IncludeModule("iblock"); 
 //id нужного инфоблока 
 $iblock_id = 3; 
 $arFilter = Array("IBLOCK_ID"=>$iblock_id, "ACTIVE"=>"Y");
 $res_count = CIBlockElement::GetList(Array(), $arFilter, Array(), false, Array());

На выходе, в переменной $res_count будет значение количества элементов, соответствующих указанному фильтру. В нашем случае это все активные элементы из инфоблока с ID равным 3.

echo( $res_count ) - выводим количество

Ниже приведен код, который выводит количество элементов из нескольких инфоблоков (используем массив array(32, 31, 30,29,28)  где "32, 31, 30,29,28" код нужных инфоблоков) , пример реализации можно посмотреть на этом блоге в footer-e.
 
<?
 //подключаем модуль инфоблоков, если он не подключен ранее 
 CModule::IncludeModule("iblock"); 
 //id нужного инфоблока 
 $iblock_id = array(32, 31, 30,29,28); 
 $arFilter = Array("IBLOCK_ID"=>$iblock_id, "ACTIVE"=>"Y");
 $res_count = CIBlockElement::GetList(Array(), $arFilter, Array(), false, Array());
echo( $res_count )
?>
Screenshot_2.png

Демо
Источник

Рейтинг:

Поделится с друзьями:

Вы можете оставить свой комментарий:


98

материалов о web-разработке

1345

читателей нашего блога

15

городов и стран

96

разработанных проектов