заменяй int_text($data[1]) на mb_substr(mb_strrchr($data[1],';',false),1) и $catID=db_r('select categoryID from '.CATEGORIES_TABLE.' where name='.mb_substr(mb_strrchr($data[1],';',false),1)); var_dump($catID); exit; а ты БД каждый раз чистишь после импорта чтоль?
Да так проще. Очистил и все. Никаких с этим проблем не связано Получился код $catID=db_r('select categoryID from '.CATEGORIES_TABLE.' where name='.mb_substr(mb_strrchr($data[1],';',false),1)); var_dump($catID); exit; Ответ: string(0) "" - ничего не добавилось
так ничего и не добавится , БД пустая, поэтому и не вернет ничего из базы //var_dump($catID); //exit; Закоментируй строки далее if (!$catID){ exit($row);
Просто обновляется страница при импорте и все. Никаких действий не происходит. Синхронизация так построена получается , что автоматом все обновляет. Если базу не чистить, все равно все будет так же
Если речь о файле, то: Код (Text): <form enctype="multipart/form-data" method="post"> <input type="file" name="import" required> <input type="submit"> </form> <?php if (isset($_FILES) && !empty($_FILES)) { $input_file= './'.$_FILES['import']['name']; $r = move_uploaded_file($_FILES['import']['tmp_name'], $input_file); if (!$r) die('<h2>Ошибка сохранения файла</h2>'); include_once "../cfg/ajax_connect.inc.php"; include_once "../cfg/category_functions.php"; $col = db_r('show columns FROM `'.PRODUCTS_TABLE.'` where `Field` = \'1C\''); if (!$col) { db_query('ALTER TABLE `'.PRODUCTS_TABLE.'` ADD `1C` VARCHAR(60) NULL , ADD UNIQUE (`1C`);'); } $col = db_r('show columns FROM `'.PRODUCTS_TABLE.'` where `Field` = \'url_pic\''); if (!$col) { db_query('ALTER TABLE `'.PRODUCTS_TABLE.'` ADD `url_pic` VARCHAR(255) NULL;'); } $col = db_r('show columns FROM `'.PRODUCTS_TABLE.'` where `Field` = \'del\''); if (!$col) { db_query('ALTER TABLE `'.PRODUCTS_TABLE.'` ADD `del` int(1) NULL'); } update_field(PRODUCTS_TABLE,array('del'=>1)); if (($handle = fopen($input_file, "r")) !== false) { $opt=array(); while (($data = fgetcsv($handle, 2000, ";")) !== false) { $num = count($data); $row++; for ($c = 3; $c < $num; $c++) { if (!empty($data[$c])) { $id_option = db_r('select optionID from '.PRODUCT_OPTIONS_TABLE.' where `name`='.int_text($data[$c])); if (!$id_option) { $option = array(); $option['name'] = $data[$c]; add_field(PRODUCT_OPTIONS_TABLE, $option); $id_option = db_insert_id(); } $opt[$c]= $id_option; } } break; } while (($data=fgetcsv($handle, 4000, ";")) !== false) { $esql=0; $num = count($data); $row++; $catID=db_r('select categoryID from '.CATEGORIES_TABLE.' where name='.mb_substr(mb_strrchr($data[2],';',false),1)); //var_dump($catID); //exit; if (!$catID){ exit($row); } if (empty($catID)){ $catID=0; } $barnd_id=db_r('select brandID from '.BRAND_TABLE.' where `name`='.int_text($data[4])); if (!$barnd_id){ add_field(BRAND_TABLE,array('name'=> $data[4])); $barnd_id = db_insert_id(); } $product_arr = array(); $productID=db_r('select productID from '.PRODUCTS_TABLE.' where 1C='.int_text($data[3])); if ($productID){ $product_arr['Price']=$data[11]; $product_arr['in_stock'] = $data[9]; $product_arr['del'] = 0; update_field(PRODUCTS_TABLE, $product_arr,'productID='.$productID); }else { $product_arr['name'] = $data[5]; $product_arr['h1'] = $data[5]; $product_arr['meta_title'] = $data[5]; $product_arr['product_code'] = $data[3]; $product_arr['1C'] = $data[3]; $product_arr['categoryID'] = $catID; $product_arr['brandID'] = $barnd_id; $product_arr['Price'] = $data[11]; $product_arr['enabled'] = 1; $product_arr['in_stock'] = $data[9]; $product_arr['description'] = $data[7]; $product_arr['del'] = 0; if (!empty($data[6])) { $product_arr['url_pic']=mb_strstr($data[6],';',true); } add_field(PRODUCTS_TABLE,$product_arr); $productID = db_insert_id(); /*if ($file_content=file_get_contents($data[6])) { $file_name= './tmp/'.$productID.'.jpg'; if (file_put_contents($file_name, $file_content)) { $new_pic_name = 'pic_'.$productID; img_resize($file_name, dirname(__FILE__)."/../products_pictures/".$new_pic_name.".jpg", RESIZE_NORMAL_X, RESIZE_NORMAL_Y, CONF_IMAGE_COLOR); //thumbnail img_resize($file_name, dirname(__FILE__)."/../products_pictures/".$new_pic_name."-S.jpg", RESIZE_SMALL_X, RESIZE_SMALL_Y, CONF_IMAGE_COLOR); //enlarged photo img_resize($file_name, dirname(__FILE__)."/../products_pictures/".$new_pic_name."-B.jpg", RESIZE_BIG_X, RESIZE_BIG_Y, CONF_IMAGE_COLOR); img_resize($file_name, dirname(__FILE__)."/../products_pictures/".$new_pic_name."-SC.jpg", 50, 50, CONF_IMAGE_COLOR); unlink($file_name); $pic_arr = array(); $pic_arr['big_picture'] = $new_pic_name."-B.jpg"; $pic_arr['thumbnail'] = $new_pic_name."-S.jpg"; $pic_arr['picture'] = $new_pic_name.".jpg"; update_field(PRODUCTS_TABLE, $pic_arr, 'productID='.$productID); } }*/ foreach ($opt as $key=>$id){ if (empty($data[$key])) continue; $variantID=db_r('select variantID from '.PRODUCT_OPTIONS_VAL_TABLE.' where name='.int_text($data[$key]).' and optionID='.$id); if (!$variantID){ $var_arr=array(); $var_arr['name']= $data[$key]; $var_arr['optionID']=$id; add_field(PRODUCT_OPTIONS_VAL_TABLE,$var_arr); $variantID= db_insert_id(); } $arr_arr=array(); $arr_arr['optionID']=$id; $arr_arr['variantID'] = $variantID; $arr_arr['productID'] = $productID; $arr_arr['default'] = 1; add_field(PRODUCT_OPTIONS_V_TABLE,$arr_arr); } } //update_products_Count_Value_For_Categories(0); /*for ($c = 0; $c < $num; $c++) { echo $data[$c]."<br />\n"; }*/ } db_query('DELETE FROM `'.PRODUCTS_TABLE.'` WHERE del=1'); fclose($handle); } echo "<h1>finish</h1>"; } Напомню, csv тот же, только с первым пустым полем, поэтому по цифрам идет сдвиг колонок на одну. До этого пустое поле (первую калонку) удалял. --- Добавлено --- Дмитрий, я уже писал, что выложить в онлайн пока возможности таковой нет... --- Добавлено --- Сейчас заметил интересную петрушку. Что после удаления: $cat_ar['name']=mb_substr(mb_strrchr($data[2],';',false),1);" , товары добавляются, но не добавляется категория. Все уходить в закрытую корневую папку. При возвращении строки, выдает кучу каталогов, как на скриншотах, которые давал. --- Добавлено --- Может в этом проблема.... Из Код (Text): if (!$catID){ $cat_ar=array(); $cat_ar['name']=mb_substr(mb_strrchr($data[2],';',false),1); $cat_ar['h1'] = $cat_ar['name']; $cat_ar['meta_title'] = $cat_ar['name']; $cat_ar['enabled']=1; $cat_ar['parent']=0; add_field(CATEGORIES_TABLE, $cat_ar); $catID = db_insert_id(); } Удалил add_field(CATEGORIES_TABLE, $cat_ar); В итог товары так же добавились в корневую закрытую папку. Разделы не добавились --- Добавлено --- Мне тут помогли в лс скидываю данные --- Добавлено --- @Dmitriy A. Arteshuk к сожалению больше помогать не сможет (чсегодня) Если есть те, кто может окончательно помочь если за спасибо или за финансовую сторону, мне сейчас помогли, будут предоставлены доступы.
Неужели на всем портале php нет тех, кто может помочь? Повторюсь, можно не бесплатно, но и цена должна быть адекватной конечно, по возможности...