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

Убрать активность у нескольких элементов одним запросом

00 голосов
4
Есть список айдишников элементов, порядка 1500 штук, необходимо в скрипте все их деактивировать ("ACTIVE" => "N").
Как сделать это одним запросом без использования CIBlockElement::Update в цикле?
Только составить прямой запрос к базе данных без использования апи инфоблоков? Если да, то может у кого-то уже есть готовый?
спросил 15 Ноя, 13 от KeiDen (400 баллов)

4 Ответы

00 голосов
в таблице b_iblock_element в поле ACTIVE пиши N

короче  если $arrId - массив idшников то так ) 
"UPDATE  `b_iblock_element` SET `ACTIVE` = 'N' WHERE `b_iblock_element`.`ID` IN " . implode(',',$arrId);
ответил 29 Дек, 13 от Hax (1,100 баллов)
00 голосов
Можно сделать импорт csv с двумя полями IE_XML_ID и IE_ACTIVE.
ответил 14 Апр, 14 от smileplz (8,020 баллов)
00 голосов
Цитата
Александр Кудин пишет:
в таблице b_iblock_element в поле ACTIVE пиши N

короче если $arrId - массив idшников то так )
"UPD ATE `b_iblock_element` SET `ACTIVE` = 'N' WHERE `b_iblock_element`.`ID` IN " . implode(',',$arrId);

Спасибо, только там в синтаксисе небольшая ошибка

Код
$query = "UPDATE `b_iblock_element` SE  `ACTIVE` = 'N' WHERE `b_iblock_element`.`ID` IN (".implode(',',$arrId).")";
$res = $DB->Query($query, true); 

Нужны скобки. А так все работает.
ответил 07 Авг, 14 от KeiDen (400 баллов)
00 голосов
да, верно) я просто по памяти писал))))
ответил 10 Дек, 14 от Hax (1,100 баллов)

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

0 голосов
6 ответов
0 голосов
3 ответов
спросил 14 Окт, 13 от Eliga (360 баллов)
0 голосов
0 ответов
0 голосов
3 ответов
0 голосов
1 ответ