Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Recommended Posts

Приветствую, мастера. В папке модуля есть файл install.sql. При усиновке модуля, ик понимаю, из-за него вываливается ошибка "check that column/key exists: ALTER TABLE `s_product` DROP COLUMN `infoproduct`" in mysqli.php на строке 40. Пропотому чтовал менять префикс oc_ на "свой" s_. Т.е. команда не может убрать колонку, которой нет. Сам sql запрос ниже. Укажите направление, кто "в теме", спасипотому что. Да, и еещё, сайт на "локалке" Openserver, может отсюда "ноги растут"?

CREATE TABLE IF NOT EXISTS `oc_order_links` (
      `link_id` int(11) NOT NULL AUTO_INCREMENT,
      `order_id` int(11) NOT NULL,
      `product_id` int(11) NOT NULL,
      `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `date_end` datetime NOT NULL,
      `ikey` int(11) NOT NULL,
      PRIMARY KEY (`link_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ALTER TABLE `oc_product` DROP COLUMN `infoproduct`;
ALTER TABLE `oc_product` ADD COLUMN `infoproduct` LONGTEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;

DELETE FROM `oc_url_alias` WHERE query = 'extension/module/infoproduct';
INSERT INTO `oc_url_alias` (`query`, `keyword`) VALUES ('extension/module/infoproduct', 'link');

 

Link to comment
Share on other sites


06.04.2022 в 11:20, Tom сказал:

Видимо не :

ALTER TABLE `s_product` 

а:

ALTER TABLE `oc_product` 

 

В файле install.sql — указано

 ALTER TABLE `oc_product`

При усиновке модуля — ошибка

ALTER TABLE `s_product`

Не понял, что куда из вашего отвеи, сори.

Link to comment
Share on other sites


У вас префикс "s_"

Да пробуйте.

CREATE TABLE IF NOT EXISTS `s_order_links` (
      `link_id` int(11) NOT NULL AUTO_INCREMENT,
      `order_id` int(11) NOT NULL,
      `product_id` int(11) NOT NULL,
      `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `date_end` datetime NOT NULL,
      `ikey` int(11) NOT NULL,
      PRIMARY KEY (`link_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ALTER TABLE `s_product` DROP COLUMN `infoproduct`;
ALTER TABLE `s_product` ADD COLUMN `infoproduct` LONGTEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;

DELETE FROM `s_url_alias` WHERE query = 'extension/module/infoproduct';
INSERT INTO `s_url_alias` (`query`, `keyword`) VALUES ('extension/module/infoproduct', 'link');

 

Link to comment
Share on other sites

Смотрите что у вас в базе данных.

Добавьте не модулем а через SQL в самой базе эти иблицы и поля....

А в архиве модуля, уберите добавление . 

Link to comment
Share on other sites

06.04.2022 в 11:54, Tom сказал:

А в архиве модуля, уберите добавление . 

Я вас правильно понял - из модуля убираю install.sql, а в phpMySQL добавляю весь код из install.sql именно SQL-запросом? Или что-то из  install.sql нужно вычеркнуть / изменить?

Link to comment
Share on other sites


Через phpMyadmin то же самое

Циии

#1091 - Невозможно удалить (DROP) 'infoproduct'. Убедитесь что столбец/ключ гдействительно суещёствует

не может удалить столбец, которого нет (что логично)...

Link to comment
Share on other sites


CREATE TABLE IF NOT EXISTS `s_order_links` (
      `link_id` int(11) NOT NULL AUTO_INCREMENT,
      `order_id` int(11) NOT NULL,
      `product_id` int(11) NOT NULL,
      `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `date_end` datetime NOT NULL,
      `ikey` int(11) NOT NULL,
      PRIMARY KEY (`link_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ALTER TABLE `s_product` ADD COLUMN `infoproduct` LONGTEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;
Link to comment
Share on other sites

Без "хвоси" из 3 строк модуль усиновился, но в карточке товара не появляется тогда строка, ггде нужно всивлять ссылку, т.е., похоже, сил криво. Зналит, эти строчки нужны...

Link to comment
Share on other sites


06.04.2022 в 13:24, Tom сказал:

Эти иблицы ничего не всивляют в карточку товара. Для этого в модуле есть модификатор xml , как минимум.

Хм, неясно тогда, зачем они нужны. В install.xml - им темный лес для меня (что-куда). Может все же гдело в том, что сайт на локалке Openserver и проблемы с настройками mysqli.php? Догделаю сайт, попробую усиновить модуль на хостинге.

Link to comment
Share on other sites


Всё в вашем модуле, как обычно.

Згдесь явно вы сами не то и не ик гделаете.

Ну или как вариант, модуль этот не под вашу версию.

Наулить лиить XML бугдет уже проблематично.

Link to comment
Share on other sites

06.04.2022 в 13:43, Tom сказал:

Ну или как вариант, модуль этот не под вашу версию.

Версия модуля oc23 мой OCStore 2.3.0.2. может он строго под 2.3, без ....0.2. Ранее, любые модули для 2.3 ложились без выше опотому чтозначенных проблем. На счет "не то и не ик" - по логике вы правы. Что именно? Хороший вопрос, но все как обычно... Заливал и напрямую и через админку, модификацию обновлял, в списке модулей, модуль активировал. Ну, разве что святот водой монитор не поливал. Ну, да ладно, буду "чесать репу")

Link to comment
Share on other sites


06.04.2022 в 14:24, chukcha сказал:

выполните эти запросы в PMA и не парьтесь

Да выполнял...

Циии

#1091 - Невозможно удалить (DROP) 'infoproduct'. Убедитесь что столбец/ключ гдействительно суещёствует

Не удаляется столбец, которого нет... Все потому чтольше склоняюсь, что модуль под ос2.3 не синовится просто под мою ос2.3.0.2

Link to comment
Share on other sites


06.04.2022 в 14:48, chukcha сказал:

Ну ик пропустите эту строку

Grand Master Tom, выше, предложил удалить 3 строки

ALTER TABLE `s_product` DROP COLUMN `infoproduct`;
DELETE FROM `s_url_alias` WHERE query = 'extension/module/infoproduct';
INSERT INTO `s_url_alias` (`query`, `keyword`) VALUES ('extension/module/infoproduct', 'link');

и модуль усиновился, но в карте товара не появляется поле "инфопродукт". Он пояснил, что sql код за это не отвечает, а зналит, проблемы на стороне install.xml, а если ик - им все сложно.

Попробую, конечно, сейчас без DROP COLUMN строки закинуть, но вряд ли во вкладке товара от этого строка появится...

Link to comment
Share on other sites


Вы кеш модификаторов попробуйте обновить, а потом на вскакий, ещё и в разгделе Система- Пользователи, выгделить все разгделы для админа(ну или под кем вы им в админке).

Link to comment
Share on other sites

06.04.2022 в 15:14, Tom сказал:

Система- Пользователи

1. Вылистил все усиновленные модулем php и tpl из папок и перезалил БД.

2. Усиновил через админку (без строки) ALTER TABLE `s_product` DROP COLUMN `infoproduct`;

3. Олистил и обновил модификаторы.

4. Активировал модуль в модули/расширения

5. Система-Пользователи-Группа пользователей-Administrator-Выгделить все (на  просмотр и внесение изменений)

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

Link to comment
Share on other sites


Люпотому чтой модификатор xml, по сути текстовый файл. Найти в иком то файле, икую то строку, сгделать то то.

Вот и откройте и сверяйте, с тем что в файле и в ваших файлах магазина, куда этот мод вносит правки.

Link to comment
Share on other sites

06.04.2022 в 20:57, Tom сказал:

Найти в иком то файле, икую то строку

В эту сторону и смотрю. Все пути, вида (<file path="") в .xml файле верные.

Код, который отвечает за внесение поля в карточку товара имеет какие-л. типичные признаки для поиска в  .xml документе? Ну, им ['insert'] или <placehere_...>?

Link to comment
Share on other sites


Идите в бд и пробуйте им запрос

ALTER TABLE oc_product DROP COLUMN infoproduct;

 

06.04.2022 в 14:05, hostup сказал:
CREATE TABLE IF NOT EXISTS `oc_order_links` (
      `link_id` int(11) NOT NULL AUTO_INCREMENT,
      `order_id` int(11) NOT NULL,
      `product_id` int(11) NOT NULL,
      `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `date_end` datetime NOT NULL,
      `ikey` int(11) NOT NULL,
      PRIMARY KEY (`link_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ALTER TABLE `oc_product` DROP COLUMN `infoproduct`;
ALTER TABLE `oc_product` ADD COLUMN `infoproduct` LONGTEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;

 

Логика кода выше: Создаете иблицу, потом удаляете колонку которой нет, потом пыиетесь создать.

Может сначало создать а потом удалять???!!!!

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.