Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Добрый вечер! Подскажите модуль ещё не умеет создавать под категорию товара? Я так поняла, что он создаёт только как главную категорию. При парсинге в "ИМ"

м.JPG

раб керамамарации.json

Надіслати
Поділитися на інших сайтах


46 минут назад, hippvik сказал:

Добрый вечер! Подскажите модуль ещё не умеет создавать под категорию товара? Я так поняла, что он создаёт только как главную категорию. При парсинге в "ИМ" 

 

Спойлер

м.JPG

 

раб керамамарации.json 5 \u043a\u0411 · 0 downloads

Все умеет.
Скармливаете ему путь категорий. В и он сам создает всю структуру.
пример для тестя имитируем получения с границы парсинга структуру категорий.
 

Спойлер

g0m2aR8.png

Затем заходим в пред просмотр и видим как модуль создаст категории.

Спойлер

BuLpMK5.png

 

Надіслати
Поділитися на інших сайтах

1 час назад, Andruxa30 сказал:

Автор, ты настоящий человечище! Спасибо тебе за этот парсер! Это шедевр! Так держать! 

спасибо рад что вам нравится.

  • +1 1
Надіслати
Поділитися на інших сайтах

Fatal error: Uncaught Exception: Error: Table 'new.oc_pars_sen_link' doesn't exist<br />Error No: 1146<br />SELECT * FROM oc_pars_sen_link WHERE scan = 1 AND `dn_id`=12 in I:\domains\localhost\system\library\db\mysqli.php:40 Stack trace: #0 I:\domains\localhost\system\library\db.php(16): DB\MySQLi->query('SELECT * FROM o...', Array) #1 I:\domains\localhost\admin\model\catalog\simplepars.php(112): DB->query('SELECT * FROM o...') #2 I:\domains\localhost\system\storage\modification\system\engine\loader.php(178): ModelCatalogSimplePars->ViemGrab(12) #3 I:\domains\localhost\system\engine\proxy.php(25): Loader->{closure}(Array, Array) #4 I:\domains\localhost\admin\controller\catalog\simplepars.php(111): Proxy->__call('ViemGrab', Array) #5 I:\domains\localhost\system\storage\modification\system\engine\action.php(51): ControllerCatalogSimplePars->grab() #6 I:\domains\localhost\admin\controller\startup\router.php(26): Action->execute(Object(Registry), Array) #7 I:\domains\localhost\system\storage\modification\system\engine\action. in I:\domains\localhost\system\library\db\mysqli.php on line 40

А предыдущая версия работала нормально на локалке...

Змінено користувачем Axelenz
Надіслати
Поділитися на інших сайтах


Только что, Axelenz сказал:

Fatal error: Uncaught Exception: Error: Table 'new.oc_pars_sen_link' doesn't exist<br />Error No: 1146<br />SELECT * FROM oc_pars_sen_link WHERE scan = 1 AND `dn_id`=12 in I:\domains\localhost\system\library\db\mysqli.php:40 Stack trace: #0 I:\domains\localhost\system\library\db.php(16): DB\MySQLi->query('SELECT * FROM o...', Array) #1 I:\domains\localhost\admin\model\catalog\simplepars.php(112): DB->query('SELECT * FROM o...') #2 I:\domains\localhost\system\storage\modification\system\engine\loader.php(178): ModelCatalogSimplePars->ViemGrab(12) #3 I:\domains\localhost\system\engine\proxy.php(25): Loader->{closure}(Array, Array) #4 I:\domains\localhost\admin\controller\catalog\simplepars.php(111): Proxy->__call('ViemGrab', Array) #5 I:\domains\localhost\system\storage\modification\system\engine\action.php(51): ControllerCatalogSimplePars->grab() #6 I:\domains\localhost\admin\controller\startup\router.php(26): Action->execute(Object(Registry), Array) #7 I:\domains\localhost\system\storage\modification\system\engine\action. in I:\domains\localhost\system\library\db\mysqli.php on line 40

А предыдущая версия работала нормально на локалке...

Странно вы второй кто написал про это. И оба говорите об локалке.
Вы выполнили Inst.php ?

Надіслати
Поділитися на інших сайтах

В 01.11.2018 в 11:30, Rassol2 сказал:

На данный момент модуль проходит период обкатки. Сейчас использования модуля на действующих проектах не рекомендуется. 
Пока идет период тестирования модуль предназначен исключительно для энтузиастов.

А как сейчас с этим? Все еще тестируется?

Надіслати
Поділитися на інших сайтах


Только что, Lyubov47 сказал:

А как сейчас с этим? Все еще тестируется?

Ну да, хотел бы уже заняться вылизыванием всех мелочей. Но как видите только закончил переписывать сбор ссылок. Что бы ускорить процесс.
И пока не могу себе сказать "Да я уверен что основные функции будут работать как часы."
По этому опять подливаю пока все не отшлифую.

Надіслати
Поділитися на інших сайтах

9 минут назад, Rassol2 сказал:

Странно вы второй кто написал про это. И оба говорите об локалке.
Вы выполнили Inst.php ? 

Задайте вопрос посложнее...

Перепробовал и чистку кэшей, модификаторов и пр. та же ошибка лезет... буду откатываться, если теперь получится вернуться назад...

Рекомендую в дальнейшем испытывать работоспособность модуля и на локальном сервере в т.ч....

Змінено користувачем Axelenz
Надіслати
Поділитися на інших сайтах


1 минуту назад, Axelenz сказал:

Задайте вопрос посложнее...

Когда загрузили новую версию модуля. С заменой файлов. После этого вы выполнили mysite.ru/inst.php ?

Надіслати
Поділитися на інших сайтах

5 минут назад, Rassol2 сказал:

Когда загрузили новую версию модуля. С заменой файлов. После этого вы выполнили mysite.ru/inst.php ?

и получил ответ finish

Надіслати
Поділитися на інших сайтах


Только что, Axelenz сказал:

и получил ответ finish

И все равно после этого ошибка присутствует ?
Если да, тогда нужно мне поднять openserver и посмотреть в чем причина на локалке.
 

Надіслати
Поділитися на інших сайтах

Только что, Rassol2 сказал:

И все равно после этого ошибка присутствует ?
Если да, тогда нужно мне поднять openserver и посмотреть в чем причина на локалке.
 

Выставлено: Apache 2.4, Php 7.2, MySQLl 5.5

Надіслати
Поділитися на інших сайтах


1 минуту назад, Axelenz сказал:

Выставлено: Apache 2.4, Php 7.2, MySQLl 5.5

а вы можете зайти в phpmyadmin в базу данных, выбрать раздел sql и жахнуть туда запрос.
 

CREATE TABLE `oc_pars_sen_link` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `dn_id` int(3) NOT NULL,
      `link` varchar(1000) NOT NULL,
      `scan` int(1) NOT NULL DEFAULT '1',
      PRIMARY KEY (`id`),
      UNIQUE KEY `link_round` (`dn_id`,`link`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

Поскольку ошибка что вы написали гласит о том что у вас не хватает одной таблицы.
Но поскольку у вас она была. И после обновления ошибка значит скрипт который должен обновлять удалил старую базу но новую не смог создать.
И конкретно вот этот запрос ее создает.

Надіслати
Поділитися на інших сайтах

3 минуты назад, Rassol2 сказал:

а вы можете зайти в phpmyadmin в базу данных, выбрать раздел sql и жахнуть туда запрос.
 


CREATE TABLE `oc_pars_sen_link` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `dn_id` int(3) NOT NULL,
      `link` varchar(1000) NOT NULL,
      `scan` int(1) NOT NULL DEFAULT '1',
      PRIMARY KEY (`id`),
      UNIQUE KEY `link_round` (`dn_id`,`link`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

Поскольку ошибка что вы написали гласит о том что у вас не хватает одной таблицы.
Но поскольку у вас она была. И после обновления ошибка значит скрипт который должен обновлять удалил старую базу но новую не смог создать.
И конкретно вот этот запрос ее создает.

 

минуточку...

Ответ MySQL: Документация

#1071 - Указан слишком длинный ключ. Максимальная длина ключа составляет 767 байт

Змінено користувачем Axelenz
Надіслати
Поділитися на інших сайтах


8 минут назад, Axelenz сказал:

минуточку...

Ответ MySQL: Документация

#1071 - Указан слишком длинный ключ. Максимальная длина ключа составляет 767 байт

странно. Это связано с старой версией mysql

 

CREATE TABLE `oc_pars_sen_link` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `dn_id` int(3) NOT NULL,
      `link` varchar(500) NOT NULL,
      `scan` int(1) NOT NULL DEFAULT '1',
      PRIMARY KEY (`id`),
      UNIQUE KEY `link_round` (`dn_id`,`link`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

Вот эти 2 запроса, должны все вылечить.
 

CREATE TABLE `oc_pars_link` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `dn_id` int(3) NOT NULL,
      `link` varchar(500) NOT NULL,
      `scan` int(1) NOT NULL DEFAULT '1',
      PRIMARY KEY (`id`),
      UNIQUE KEY `link_index` (`dn_id`,`link`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

Надіслати
Поділитися на інших сайтах

Я углублюсь в этот вопрос и тогда составлю баланс. Что бы не было таких проблем.

Надіслати
Поділитися на інших сайтах

9 минут назад, Rassol2 сказал:

@Axelenz фото не заехало.

Ошибка в использованиии MySQL 5.5 там ограничение по длине в более поздних версиях длина увеличена

 

Вот что пишут: "

767 bytes - это указанное префиксное ограничение для таблиц InnoDB в MySQL версии 5.6 (и предыдущих версиях). Это 1000 байтов для таблиц MyISAM. В MySQL версии 5.7 и выше этот предел был увеличен до 3072 байт.

Вы также должны знать, что если вы установите индекс в большом поле char или varchar, которое закодировано в utf8mb4, вам необходимо разделить максимальную длину префикса max 767 байтов (или 3072 байта) на 4, что приведет к 191. Это связано с тем, что максимальная длина символа utf8mb4 равна четырем байтам. Для символа utf8 это будет три байта, в результате чего максимальная длина префикса индекса будет равна 254.

Один из вариантов заключается в том, чтобы просто установить нижний предел для полей VARCHAR.

"

Надіслати
Поділитися на інших сайтах


6 минут назад, Rassol2 сказал:

странно. Это связано с старой версией mysql

 


CREATE TABLE `oc_pars_sen_link` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `dn_id` int(3) NOT NULL,
      `link` varchar(500) NOT NULL,
      `scan` int(1) NOT NULL DEFAULT '1',
      PRIMARY KEY (`id`),
      UNIQUE KEY `link_round` (`dn_id`,`link`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

Вот эти 2 запроса, должны все вылечить.
 


CREATE TABLE `oc_pars_link` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `dn_id` int(3) NOT NULL,
      `link` varchar(500) NOT NULL,
      `scan` int(1) NOT NULL DEFAULT '1',
      PRIMARY KEY (`id`),
      UNIQUE KEY `link_index` (`dn_id`,`link`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

#1071 - Указан слишком длинный ключ. Максимальная длина ключа составляет 767 байт

та же ошибка...

Надіслати
Поділитися на інших сайтах


2 минуты назад, Axelenz сказал:

Ошибка в использованиии MySQL 5.5 там ограничение по длине в более поздних версиях длина увеличена

 

Вот что пишут: "

767 bytes - это указанное префиксное ограничение для таблиц InnoDB в MySQL версии 5.6 (и предыдущих версиях). Это 1000 байтов для таблиц MyISAM. В MySQL версии 5.7 и выше этот предел был увеличен до 3072 байт.

Вы также должны знать, что если вы установите индекс в большом поле char или varchar, которое закодировано в utf8mb4, вам необходимо разделить максимальную длину префикса max 767 байтов (или 3072 байта) на 4, что приведет к 191. Это связано с тем, что максимальная длина символа utf8mb4 равна четырем байтам. Для символа utf8 это будет три байта, в результате чего максимальная длина префикса индекса будет равна 254.

Один из вариантов заключается в том, чтобы просто установить нижний предел для полей VARCHAR.

"

ну вот я как бы это уже вам написал выше. :)
попробуйте запрос что я дал выше. Я просто не помню сколько там по байтам получается.

Вам в 2  запросах нужно понижать значение varchar(500)
Пока не залезет.
Но желательно что бы оно было как можно больше.

Надіслати
Поділитися на інших сайтах

Только что, Axelenz сказал:

#1071 - Указан слишком длинный ключ. Максимальная длина ключа составляет 767 байт

та же ошибка...

значит ваше значение 250
Просто это поле для ссылок. И хочется что бы оно было как можно больше. А то ссылки бывают длинные. Редко но бывают.

Надіслати
Поділитися на інших сайтах

1 минуту назад, Rassol2 сказал:

значит ваше значение 250
Просто это поле для ссылок. И хочется что бы оно было как можно больше. А то ссылки бывают длинные. Редко но бывают.

сенкс, проскочило с 250...

Рекомендую давать на модуль минимальные требования, чтобы понятно было, с чем модуль работать не будет...

Надіслати
Поділитися на інших сайтах


Только что, Axelenz сказал:

сенкс, проскочило с 250...

Рекомендую давать на модуль минимальные требования, чтобы понятно было, с чем модуль работать не будет...

есть такие не ниже php 5.6 а про мускул. Я не все нюансы знаю как оказывается.
нужно почитать. Что там завезли. И что считается стабильным.
 

Надіслати
Поділитися на інших сайтах

14 минут назад, Axelenz сказал:

сенкс, проскочило с 250...

Рекомендую давать на модуль минимальные требования, чтобы понятно было, с чем модуль работать не будет...

да это получается что в старом мускуле ограничение на ключ 765байт.
В кодировке UTF-8 это получается 3 байта на символ.
250*3=750байт.
В данном случаи есть риски. Ссылки которые содержат в себе больше 250символов при записи в базу данных будут обрезается. до 250 символов.
Ссылка на эту тему модуля содержит 126символов. Так что по длине к вам залезут ссылки как 2 на это сообщение.
 

Вот такой длины примерно.

надо как то понять какая версия mysql сейчас актуальна, и я буду операция на нее.
У меня на хостинге стоит
5hOO6RN.png

И я таких фризов просто не заметил. Прошли мимо меня. Но как вижу это коснулось пользователей которые используют локальные сервера с старым Mysql
Если хостинги уже перешли на более новые версии. То для локальных придется подправить запрос.

Но я думаю с новой скоростью парсинга эта жертва того стоит :)

Надіслати
Поділитися на інших сайтах

@Axelenz И да если что в OpenServer может выбрать версию Mysql 5.7 и даже 8.
Только что поставил и в настройках обнаружил.
ii4mTdh.png

 

Так что бы на вашем месте просто выбрал более свежую версию базы данных.
И использовал стандартный файл Inst.php

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.