Bross Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 Добрый день. Стоит задача обновлять наличие по определенным столбцам в CSV-файле - 3 столбец это артикул, 8 - наличие. Попытался решить её таким образом: public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++) { $sql = "select sku, quantity from product"; $res = mysql_query($sql); while ($row = mysql_fetch_array($res)){ if ($data[3]==$row['sku']){ $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); if ($data[8] != $row['quantity']) { $sql = mysql_query("UPDATE". DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; } else {echo 'что-то пошло не так!';} } } } } fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } } Но позиции обновляются как-то выборочно. Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/files/file/511-%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%B2-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B5-csv/ Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 public function import83() {первая мысль - "куда делись предыдущие 82 метода? О_о". :Dдля начала приведи код к читабельному виду. всё, что у тебя внутри for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++) {дикий трэш, вызывающий вот такую реакцию - особенно - сначала сравнение sku if ($data[3]==$row['sku']){а ПОТОМ вырезание из него всего, кроме цифр $sku = (int)preg_replace("/\D/","", $data[3]);и использование его покоцанного в sql-выборке ..."WHERE sku =" . $sku); Но позиции обновляются как-то выборочно. в чем это проявляется? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 первая мысль - "куда делись предыдущие 82 метода? О_о". :D Они не выдержали) использование его покоцанного в sql-выборке Так мне и нужны одни цифры, встречаются пробелы в артикуле. в чем это проявляется? Эм, работает только счетчик и показывает сколько нашлось совпадений артикулов. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 https://opencartforum.com/files/file/511-%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%B2-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B5-csv/ Благодарю за модуль. Но мне нужно ОБНОВЛЯТЬ наличие по артикулам из других файлов - прайс-листов поставщика. Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 приведи код к читабельному виду. определись: "позиции обновляются..." или "работает только счетчик..."? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 приведи код к читабельному виду. определись: "позиции обновляются..." или "работает только счетчик..."? Читабельному какому? Если бы я знал какой читабельный, он был бы читабелен. Так? for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){ $sql = "select sku, quantity from product"; $res = mysql_query($sql); $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); while ($row = mysql_fetch_array($res)){ if ($sku == $row['sku']){ if ($quan != $row['quantity']) { $sql = mysql_query("UPDATE". DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; } else {echo 'что-то пошло не так!';} } } } Раньше относительно успешно обновлялись. Сейчас работает только счетчик. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 двойной цикл :blink: for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){..while ($row = mysql_fetch_array($res)){ Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Ну, как сказать))) Мне так проще было. Скажите, просто - что ты тут и тут не прав. А риторические вопросы мне проблему не решат ((( Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Большое спасибо. Теперь я все понял и пошел делать как надо. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 выше ссылка на модуль которые делает похожее смотрите как там сделано, переделывайте под свои нужды то что вы написали это мусор, не думаю что у кого-то есть желание в нем копаться Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) ДА. upd: но меньше :-) upd2: $this->allowed_fields->sku --- тут что? ... if($sku == $this->allowed_fields->sku) { var_dump ($data); ...>> ... if($sku == $this->allowed_fields->sku) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; var_dump ($data); ... Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам импорт отдельных столбцов CSV Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 public function import83() {первая мысль - "куда делись предыдущие 82 метода? О_о". :Dдля начала приведи код к читабельному виду. всё, что у тебя внутри for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++) {дикий трэш, вызывающий вот такую реакцию - особенно - сначала сравнение sku if ($data[3]==$row['sku']){а ПОТОМ вырезание из него всего, кроме цифр $sku = (int)preg_replace("/\D/","", $data[3]);и использование его покоцанного в sql-выборке ..."WHERE sku =" . $sku); Но позиции обновляются как-то выборочно. в чем это проявляется? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 первая мысль - "куда делись предыдущие 82 метода? О_о". :D Они не выдержали) использование его покоцанного в sql-выборке Так мне и нужны одни цифры, встречаются пробелы в артикуле. в чем это проявляется? Эм, работает только счетчик и показывает сколько нашлось совпадений артикулов. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 https://opencartforum.com/files/file/511-%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%B2-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B5-csv/ Благодарю за модуль. Но мне нужно ОБНОВЛЯТЬ наличие по артикулам из других файлов - прайс-листов поставщика. Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 приведи код к читабельному виду. определись: "позиции обновляются..." или "работает только счетчик..."? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 приведи код к читабельному виду. определись: "позиции обновляются..." или "работает только счетчик..."? Читабельному какому? Если бы я знал какой читабельный, он был бы читабелен. Так? for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){ $sql = "select sku, quantity from product"; $res = mysql_query($sql); $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); while ($row = mysql_fetch_array($res)){ if ($sku == $row['sku']){ if ($quan != $row['quantity']) { $sql = mysql_query("UPDATE". DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; } else {echo 'что-то пошло не так!';} } } } Раньше относительно успешно обновлялись. Сейчас работает только счетчик. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 двойной цикл :blink: for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){..while ($row = mysql_fetch_array($res)){ Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Ну, как сказать))) Мне так проще было. Скажите, просто - что ты тут и тут не прав. А риторические вопросы мне проблему не решат ((( Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Большое спасибо. Теперь я все понял и пошел делать как надо. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 выше ссылка на модуль которые делает похожее смотрите как там сделано, переделывайте под свои нужды то что вы написали это мусор, не думаю что у кого-то есть желание в нем копаться Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) ДА. upd: но меньше :-) upd2: $this->allowed_fields->sku --- тут что? ... if($sku == $this->allowed_fields->sku) { var_dump ($data); ...>> ... if($sku == $this->allowed_fields->sku) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; var_dump ($data); ... Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам импорт отдельных столбцов CSV Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 первая мысль - "куда делись предыдущие 82 метода? О_о". :D Они не выдержали) использование его покоцанного в sql-выборке Так мне и нужны одни цифры, встречаются пробелы в артикуле. в чем это проявляется? Эм, работает только счетчик и показывает сколько нашлось совпадений артикулов. Надіслати Поділитися на інших сайтах More sharing options...
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 https://opencartforum.com/files/file/511-%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%B2-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B5-csv/ Благодарю за модуль. Но мне нужно ОБНОВЛЯТЬ наличие по артикулам из других файлов - прайс-листов поставщика. Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 приведи код к читабельному виду. определись: "позиции обновляются..." или "работает только счетчик..."? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 приведи код к читабельному виду. определись: "позиции обновляются..." или "работает только счетчик..."? Читабельному какому? Если бы я знал какой читабельный, он был бы читабелен. Так? for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){ $sql = "select sku, quantity from product"; $res = mysql_query($sql); $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); while ($row = mysql_fetch_array($res)){ if ($sku == $row['sku']){ if ($quan != $row['quantity']) { $sql = mysql_query("UPDATE". DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; } else {echo 'что-то пошло не так!';} } } } Раньше относительно успешно обновлялись. Сейчас работает только счетчик. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 двойной цикл :blink: for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){..while ($row = mysql_fetch_array($res)){ Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Ну, как сказать))) Мне так проще было. Скажите, просто - что ты тут и тут не прав. А риторические вопросы мне проблему не решат ((( Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Большое спасибо. Теперь я все понял и пошел делать как надо. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 выше ссылка на модуль которые делает похожее смотрите как там сделано, переделывайте под свои нужды то что вы написали это мусор, не думаю что у кого-то есть желание в нем копаться Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) ДА. upd: но меньше :-) upd2: $this->allowed_fields->sku --- тут что? ... if($sku == $this->allowed_fields->sku) { var_dump ($data); ...>> ... if($sku == $this->allowed_fields->sku) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; var_dump ($data); ... Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам импорт отдельных столбцов CSV Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 приведи код к читабельному виду. определись: "позиции обновляются..." или "работает только счетчик..."? Читабельному какому? Если бы я знал какой читабельный, он был бы читабелен. Так? for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){ $sql = "select sku, quantity from product"; $res = mysql_query($sql); $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); while ($row = mysql_fetch_array($res)){ if ($sku == $row['sku']){ if ($quan != $row['quantity']) { $sql = mysql_query("UPDATE". DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; } else {echo 'что-то пошло не так!';} } } } Раньше относительно успешно обновлялись. Сейчас работает только счетчик. Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 двойной цикл :blink: for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){..while ($row = mysql_fetch_array($res)){ Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Ну, как сказать))) Мне так проще было. Скажите, просто - что ты тут и тут не прав. А риторические вопросы мне проблему не решат ((( Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Большое спасибо. Теперь я все понял и пошел делать как надо. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 выше ссылка на модуль которые делает похожее смотрите как там сделано, переделывайте под свои нужды то что вы написали это мусор, не думаю что у кого-то есть желание в нем копаться Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) ДА. upd: но меньше :-) upd2: $this->allowed_fields->sku --- тут что? ... if($sku == $this->allowed_fields->sku) { var_dump ($data); ...>> ... if($sku == $this->allowed_fields->sku) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; var_dump ($data); ... Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам импорт отдельных столбцов CSV Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 двойной цикл :blink: for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){..while ($row = mysql_fetch_array($res)){ Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Ну, как сказать))) Мне так проще было. Скажите, просто - что ты тут и тут не прав. А риторические вопросы мне проблему не решат ((( Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Большое спасибо. Теперь я все понял и пошел делать как надо. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 выше ссылка на модуль которые делает похожее смотрите как там сделано, переделывайте под свои нужды то что вы написали это мусор, не думаю что у кого-то есть желание в нем копаться Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) ДА. upd: но меньше :-) upd2: $this->allowed_fields->sku --- тут что? ... if($sku == $this->allowed_fields->sku) { var_dump ($data); ...>> ... if($sku == $this->allowed_fields->sku) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; var_dump ($data); ... Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам импорт отдельных столбцов CSV Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 mysql_fetch_array mysql_query вы в код движка заглядывали? Ну, как сказать))) Мне так проще было. Скажите, просто - что ты тут и тут не прав. А риторические вопросы мне проблему не решат ((( Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Большое спасибо. Теперь я все понял и пошел делать как надо. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 выше ссылка на модуль которые делает похожее смотрите как там сделано, переделывайте под свои нужды то что вы написали это мусор, не думаю что у кого-то есть желание в нем копаться Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) ДА. upd: но меньше :-) upd2: $this->allowed_fields->sku --- тут что? ... if($sku == $this->allowed_fields->sku) { var_dump ($data); ...>> ... if($sku == $this->allowed_fields->sku) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; var_dump ($data); ... Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам импорт отдельных столбцов CSV Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 всё не так весь кусок кода - пример как делать не надо Большое спасибо. Теперь я все понял и пошел делать как надо. Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 выше ссылка на модуль которые делает похожее смотрите как там сделано, переделывайте под свои нужды то что вы написали это мусор, не думаю что у кого-то есть желание в нем копаться Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) ДА. upd: но меньше :-) upd2: $this->allowed_fields->sku --- тут что? ... if($sku == $this->allowed_fields->sku) { var_dump ($data); ...>> ... if($sku == $this->allowed_fields->sku) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; var_dump ($data); ... Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам импорт отдельных столбцов CSV Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) ДА. upd: но меньше :-) upd2: $this->allowed_fields->sku --- тут что? ... if($sku == $this->allowed_fields->sku) { var_dump ($data); ...>> ... if($sku == $this->allowed_fields->sku) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; var_dump ($data); ... Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам импорт отдельных столбцов CSV
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 ДА. upd: но меньше :-) Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ? Надіслати Поділитися на інших сайтах More sharing options...
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 $this->allowed_fields->sku --- тут что? На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed'); Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 (змінено) http://php.net/manual/ru/function.fgetcsv.php <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> $row = 1; $k = 0; if (($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num полей в строке $row: <br /></p>\n"; if (isset($data[3]) && isset($data[8])) { // ты уверен, что 3-8, а не 2-7 ? $sku = (int)preg_replace("/\D/","", $data[3]); $qty = (int)preg_replace("/\D/","", $data[8]); $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". (int)$qty . "WHERE sku =" . $this->db->escape($sku)); $k++; } $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } Змінено 9 квітня 2015 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options... Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Поиск картинок для товаров PRO Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 0 коментарів 32 954 перегляди sv2109 9 грудня 2015 [Поддержка] Поиск картинок для товаров PRO 1 2 3 4 5 Автор: sv2109, 9 грудня 2015 рисунки товар (і ще 5) Теги: рисунки товар импорт поиск картинки изображения картинка 120 відповідей 29 055 переглядів sv2109 12 липня [Поддержка] Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 6 відповідей 667 переглядів IHOR1989 27 лютого Обмін даними з Google Spreadsheets Автор: IHOR1989, 24 березня 2025 импорт импорт прайсы (і ще 16) Теги: импорт импорт прайсы импорт в opencart импорт цен обмен данными экспорт в google экспорт данных экспорт\импорт google cloud google api google spreadsheets данные данные товара синхронизация синхронизация товаров выгрузка api выгрузка в google выгрузка на сайт 0 коментарів 2 667 переглядів IHOR1989 24 березня 2025 Модуль PRICE MASTER - Модуль импорта/экспорта товаров, парсинг, перевод, генерация текстов, редактор каталога и многое другое [Поддержка] 1 2 3 Автор: ScriptBrains, 29 листопада 2024 загрука загрузка yml (і ще 30) Теги: загрука загрузка yml загрузка товаров импорт товаров экспорт товаров парсинг сайтов excel xls xlsx csv yml xml word наполнение товаром import export parsing массовый редактор chat gpt переводчик описаний товаров перевод автоматический импорт автоматизация автоматическая выгрузка товаров автоматическое обновление автоматическое заполнение автоматическое заполнение seo url наполнение магазина поставщики фид фид для гугл фид товаров 51 відповідь 5 701 перегляд ScriptBrains 9 червня Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату. Надіслати Поділитися на інших сайтах More sharing options...
Bross Опубліковано: 9 квітня 2015 Автор Share Опубліковано: 9 квітня 2015 Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен. Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 9 квітня 2015 Share Опубліковано: 9 квітня 2015 https://opencartforum.com/forum-12/announcement-1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-http-500-internal-server-error-%D0%BE%D0%BD%D0%B0-%D0%B6%D0%B5-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B5%D0%B6%D0%B4/ Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts