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

Ошибка при добавлении разделов

00 голосов
3
Всем доброго времени суток
При множественном добавлении разделов и элементов в цикле ( товаров  около 2000 ), разделов ~ 15000 , входе добавления сценарий прерывается и появляется ошибка  :



Ошибка 
Код
Line: 1123
MySQL Query Error: ins ert into b_search_content_stem (SEARCH_CONTENT_ID, LANGUAGE_ID, STEM, TF,PS) values (43901, 'ru', , 0.2314, 1.0000), (43901, 'ru', 11900, 0.2314, 2.0000), (43901, 'ru', 11937, 0.2314, 3.0000)[You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 0.2314, 1.0000), (43901, 'ru', 11900, 0.2314, 2.0000), (43901, 'ru', 11937, 0.2' at line 4]
Способ добвления разделов  и элементов


Код
$bs = new CIBlockSection;

foreach ($tree as $key=>$value){ 

   $add = $bs->Add(Array('NAME'=>$key, 'IBLOCK_ID'=>14,'CODE'=>$key), false,false);
   if (!$add)   echo $bs->LAST_ERROR;
   
   



foreach ($value as $key1=>$value1){ 

   $add1 = $bs->Add(Array('NAME'=>$key1, 'IBLOCK_ID'=>14,'IBLOCK_SECTION_ID'=>$add,'CODE'=>$key1), false,false);
   if (!$add1)   echo $bs->LAST_ERROR;


foreach ($value1 as $key2=>$value2 ){

   $add2 = $bs->Add(Array('NAME'=>$key2, 'IBLOCK_ID'=>14,'IBLOCK_SECTION_ID'=>$add1,'CODE'=>$key2), false,false);
   if (!$add2)   echo $bs->LAST_ERROR;
   

 
foreach ($value2["products"] as $key3=>$value3){ 
 
preg_match('#(<table cellpadding="4" cellspacing="0" border="0" class="text" width="100%")[\s\S]*?</table>#im',$content,$description);


$PROP = array ("model"=>$key3,"features"=>array("VAL UE"=>array("TEXT"=>$description[0],"TYPE"=>"html")),"vendor"=>$vendor[1],"goodcode"=>$code[1],"images"=>$arFils);
 
$arLoadProductArray = Array(
  "CODE" => $key3,   
  "IBLOCK_SECTION_ID" => $add2,   
  "IBLOCK_ID"      => 14,
  "PROPERTY_VALUES"=> $PROP,
  "NAME"           => $key3,
  "ACTIVE"         => "Y", 
  "DETAIL_PICTURE"=>CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/imgs/".$name_img),
  "PREVIEW_PICTURE"=>CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/imgs/".$name_img)


  );
$el = new CIBlockElement;

if($PRODUCT_ID = $el->Add($arLoadProductArray)):
  echo "New ID: ".$PRODUCT_ID;
else:
  echo "Error: ".iconv("windows-1251","UTF-8",$el->LAST_ERROR);
  exit();
endif;

         }
      }
   }
} 


Если кто-нибудь сталкивался с этой проблемой помогите решить
спросил 25 Фев, 13 от Dayran (840 баллов)

3 Ответы

00 голосов
попробуй отключить индексацию в поиске при добавлении элемента


Код
if($PRODUCT_ID = $el->Add($arLoadProductArray)):

замени на

Код
if($PRODUCT_ID = $el->Add($arLoadProductArray,false,false)):
ответил 25 Фев, 13 от Hax (1,100 баллов)
00 голосов
Ну или проверить корректность настроек языковых настроек у таблицы
ответил 15 Март, 13 от sickmind (4,660 баллов)
00 голосов
Спасибо вам за ответы , проблему решил. Есть следующий вопрос:
Делаю экспорт инфоблока уровень вложенности его 3 раздела, дальше идут элементы, все разделы попадают в файл .csv после экспорта. При импорте этого файла в инфоблок разделы не создаются только элементы, соответствия полям в файле и в базе при импорте проставляются, но переноса разделов не происходит, в чем может быть дело ?
ответил 16 Апр, 13 от Dayran (840 баллов)

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

0 голосов
1 ответ
спросил 06 Март, 14 от Vrednaya (100 баллов)
0 голосов
6 ответов
0 голосов
1 ответ
0 голосов
4 ответов