Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как по ID элемента узнать есть такой в инфоблоке или нет?

00 голосов
3
Привет!
Известны ID элементов, требуется проверка существует такой элемент в инфоблоке или нет.
спросил 23 Апр, 13 от Maximus1 (380 баллов)

3 Ответы

00 голосов
Эта функция вернет количество элементов по фильтру:

Код
if (CModule::IncludeModule("iblock")) {

   $count = CIBlockElement::GetList(
      Array(),
      Array(
         "IBLOCK_ID"=>1,
         "ID" => 12345,
      ),
      Array()
   );

}                   
ответил 23 Апр, 13 от BRENN (1,080 баллов)
00 голосов
Для проверки 1 элемента используйте лучше

Код
$ID = 123;
if(CIBlockElement::GetByID($ID) === false) {
 // не существует
} else {
// существует
}

Для проверки нескольких можно использовать такую конструкцию, чтоб использовался только 1 запрос

Код
$arFilter = array(
    "IBLOCK_ID" => $IBLOCK_ID,
    array(
         "LOGIC" => "OR",
         array("ID" => $firstID),
      array("ID" => $secID)
    ),
);
$count = CIBlockElement::GetList(
      Array(),
      $arFilte,
      Array()
   );
 
Как-то так, проверить работу пока нет времени
ответил 23 Апр, 13 от Tei (480 баллов)
00 голосов
Цитата
Артём Дурнев пишет:
Для проверки 1 элемента используйте лучше
Код
 $ID = 123;
if(CIBlockElement::GetByID($ID) === false) {
 // не существует
} else {
// существует
}

 
Так если элемент в другом инфоблоке- он тоже скажет что существует...
ответил 17 Июнь, 13 от 4680 (260 баллов)

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

0 голосов
2 ответов
0 голосов
7 ответов
спросил 30 Май, 13 от Bambocho (300 баллов)
0 голосов
2 ответов
спросил 08 Апр, 14 от Gad (160 баллов)
0 голосов
6 ответов