Jump to content
Sign in to follow this  
AlexCoder

[Решено] Добавление товаров прямиком через БД

Recommended Posts

Всем привет. Если добавлять товары в магазин напрямую через БД, то достаточно ли писать данные только в две таблицы — "product" и "product_description"? Или так что-то сломать можно?

Share this post


Link to post
Share on other sites

нет, как минимум еще нужно product_to_category и product_to_story и это при условии что вам не нужны опции, атрибуты, скидки, акции, доп.изображения, загрузки, теги итд.

  • +1 1

Share this post


Link to post
Share on other sites

А если в эти 2 писать — итого получается 4 таблицы — будут товары корректно добавляться? Пусть без тэгов и без атрибутов, но чтобы корректно добавлялись.

Share this post


Link to post
Share on other sites

Вроде как должно нормально работать, но я не пробовал, поэтому 100% гарантии дать не могу, возможно еще какая-то таблица задействована.

Попробуйте и будете знать наверняка.

  • +1 1

Share this post


Link to post
Share on other sites

Никак не могу сообразить как добавить запись в `product_description`.

 

Делаю так:

mysql_query("INSERT INTO `product_description` VALUES ($next_id, 1, '$name', '$description', '', '', '', '', ''),
                                                      ($next_id, 2, '$name', '$description', '', '', '', '', '')");

Тем же принципом делаю insert новой записи в `product`, там всё проходит нормально. А с `product_description` получаю ошибку: «Duplicate entry '67-1' for key 'PRIMARY'». В Google искал, темы с ответами находил, но не понимаю, что именно сделать с этой таблицей в OpenCart.

Share this post


Link to post
Share on other sites

Там первичный ключ по 2-м полям: product_id и language_id. Нельзя чтобы было 2 записи с одинаковым product_id и language_id.

Если вы получаете ошибку dublicate entry значить в базе уже есть такая запись.

  • +1 1

Share this post


Link to post
Share on other sites

Нельзя чтобы было 2 записи с одинаковым product_id и language_id.

 

Там изначально у демо-товара каждой записи по две штуки и каждые две штуки имеют одинаковый `product_id`. :-\

Различаются только языком — 1 или 2.

Share this post


Link to post
Share on other sites

Нельзя чтобы было 2 записи с одинаковым product_id И language_id.

  • +1 1

Share this post


Link to post
Share on other sites

sv2109, я всё равно не понимаю.
Мой скрипт добавляет две записи, у этих двух записей одинаковый product_id, но разный language_id. Это должно пройти? В соответствии с тем, что я вижу у демо-товаров, — должно. Не могли бы вы ткнуть меня носом в то, что именно не так?

Share this post


Link to post
Share on other sites

Откройте phpMyAdmin и посмотрите на таблицу. Возможно строчка с таким же product_id и language_id уже есть в базе. Попробуйте ваш sql запрос выполнить в phpMyAdmin, там есть соответствующая вкладка.

  • +1 1

Share this post


Link to post
Share on other sites

Вот я пытаюсь добавить данные в phpmyadmin (ошибка после выполнения наверху, обведена красным):

KHDr9Q5.png

Чтобы видеть все product_id отсортированными:

R22sP6f.png

Листаем вниз и видим, что последний ID — 45:

aMmcBA7.png

А я пытаюсь добавить ID 67. То есть для него место свободно.

Share this post


Link to post
Share on other sites

45 точно последний? Или последний только на первой странице?..

Только что специально у себя проверил на 1.5.3.1, "INSERT INTO `product_description`

VALUES ( 100, 1, 'aaa', 'bbb', '', '', '', '' ) , ( 100, 2, 'aaa', 'bbb', '', '', '', '' )"

прекрасно исполняется, новые строки добавлены.

  • +1 1

Share this post


Link to post
Share on other sites

Да, там в description не все строки отображены были... Моя осечка. :-) Сейчас всё получилось, спасибо.

Share this post


Link to post
Share on other sites

Пытаюсь сделать, чтобы добавленный товар был виден не только в своей подкатегории, но и в главной категории.

 

Изначально было так:

 

mysql_query("INSERT INTO `product_to_category` VALUES ($next_id, $category, '')");
 

Здесь третий столбец — main_category. Создал переменную $main_category, которая берётся из `parent_id`, сделал так:

 

 

mysql_query("INSERT INTO `product_to_category` VALUES ($next_id, '$category, $main_category', '')");
 

Но так ничего не сработало — всё равно товар отображается только в своей подкатегории, а в основной категории — ничего. Подскажите, как сделать, чтобы все добавляемые товары отображались в 2 местах — своей подкатегории и главной категории?

Share this post


Link to post
Share on other sites

Ещё пробовал $main_category заносить в третий столбец, но и это ничего не меняет. Потом попробовал создать товар в админке, оказалось, что третий столбец там устанавливается в 0, хотя основная категория указывалась.

Share this post


Link to post
Share on other sites

Создал переменную $main_category, которая берётся из `parent_id`, сделал так:

mysql_query("INSERT INTO `product_to_category` VALUES ($next_id, '$category, $main_category', '')");

Но так ничего не сработало — всё равно товар отображается только в своей подкатегории, а в основной категории — ничего.

 

батенька, да вы даже основ mysql-синтаксиса не знаете. :-x

как вы умудряетесь вообще что-то делать?  :lol:

 

Подскажите, как сделать, чтобы все добавляемые товары отображались в 2 местах — своей подкатегории и главной категории?

mysql_query("INSERT INTO `product_to_category` VALUES ($next_id, $category, '0')"); /* показывать также в категориях... */
mysql_query("INSERT INTO `product_to_category` VALUES ($next_id, $main_category, '1')"); /* основная категория товара */

  • +1 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.