Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

hostup
 Поделиться

Рекомендованные сообщения

Приветствую, мастера. В папке модуля есть файл 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');

 

Ссылка на комментарий
Поделиться на других сайтах


Видимо не :

ALTER TABLE `s_product` 

а:

ALTER TABLE `oc_product` 

 

Ссылка на комментарий
Поделиться на других сайтах

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

Видимо не :

ALTER TABLE `s_product` 

а:

ALTER TABLE `oc_product` 

 

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

 ALTER TABLE `oc_product`

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

ALTER TABLE `s_product`

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

Ссылка на комментарий
Поделиться на других сайтах


У вас префикс "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');

 

Ссылка на комментарий
Поделиться на других сайтах

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

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

Так я же говорил,

Цитата

Пробовал менять префикс oc_ на "свой" s_

Ну, т.е. префикс)

Ссылка на комментарий
Поделиться на других сайтах


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

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

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

Ссылка на комментарий
Поделиться на других сайтах

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

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

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

Ссылка на комментарий
Поделиться на других сайтах


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

Цитата

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

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

Ссылка на комментарий
Поделиться на других сайтах


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;
Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах


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

Ссылка на комментарий
Поделиться на других сайтах

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

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

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

Ссылка на комментарий
Поделиться на других сайтах


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

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

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

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

Ссылка на комментарий
Поделиться на других сайтах

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

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

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

Ссылка на комментарий
Поделиться на других сайтах


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

install.sql это, увы, один из экспериментов даниеля

 

Ссылка на комментарий
Поделиться на других сайтах

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

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

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

Цитата

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

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

Ссылка на комментарий
Поделиться на других сайтах


 

06.04.2022 в 14:47, hostup сказал:

Не удаляется столбец, которого нет...

Ну так пропустите эту строку
На нет и суда нет.

Ссылка на комментарий
Поделиться на других сайтах

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 строки закинуть, но вряд ли во вкладке товара от этого строка появится...

Ссылка на комментарий
Поделиться на других сайтах


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

Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на других сайтах


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

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

Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

Ссылка на комментарий
Поделиться на других сайтах


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

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;

 

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

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

 

Ссылка на комментарий
Поделиться на других сайтах

08.04.2022 в 03:09, Venter сказал:

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

Может и так, но я тогда "теряю веру в логику))". Налил чай, вылил... а выпить? Так или иначе, без строки DROP COLUMN модуль устанавливается, но во вкладке "товары" не появляется поле "Инфопродукты", значит, как утверждает Grand Master Tom, ковырять надо .xml файл. Пути в нем проверил, а какой код отвечает за добавление поля, понять не могу.

Ссылка на комментарий
Поделиться на других сайтах


Что за модуль такой?

У вас инсталл должен сработать единожды. В момент самой первой установки. И если он создал таблицы, то этот файл удалить нужно по хорошему (здесь не доработка автора).

Второй момент "должен появится во вкладке Товары", может это в вашем понимании так. А модуль например имеет ещё и некие настройки в виде самостоятельного модуля со своей панелью настроек, где этот самый вывод, просто отключен итд итп.

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.