Делаю массовое добавление элементов в цикле, и если элемент уже есть, то нужно его обновить.
Есть код:
Нужен ID элемента когда в LAST_ERROR ошибка "Элемент с таким символьным кодом уже существует"
Чтобы потом можно было обновить его функцией Update
Сделал так: функцией CIBlockElement::GetList выбрал элемент по названию и получил ID элемента
Думаю есть проще способ чтоб получить ID элемента, если такой уже есть.
Или я правильно делаю и так и должно быть?
Есть код:
Код |
---|
<? $el= new CIBlockElement; $arFields = Array( "ACTIVE" => "Y", "IBLOCK_ID" => $IBLOCK_ID, "NAME" => $NAME, "CODE" => $CODE, ); $ID = $el->Add($arFields); echo $el->LAST_ERROR; ?> |
Чтобы потом можно было обновить его функцией Update
Сделал так: функцией CIBlockElement::GetList выбрал элемент по названию и получил ID элемента
Код |
---|
if(strstr($el->LAST_ERROR,"Элемент с таким символьным кодом уже существует")) { $arSelect = Array("ID"); $arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "NAME"=>$NAME, "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); $ob = $res->GetNextElement(); $ID = $ob->fields["ID"]; //получаем ID елемента который нужно обновить $be = new CIBlockElement; $res = $be->Update($ID, $arLoadProductArray); } |
Думаю есть проще способ чтоб получить ID элемента, если такой уже есть.
Или я правильно делаю и так и должно быть?