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

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


AlexCoder

Recommended Posts

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

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


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

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

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

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


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

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

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

Никак не могу сообразить как добавить запись в `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.

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


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

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

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

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

 

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

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

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


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

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

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

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


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

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

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

KHDr9Q5.png

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

R22sP6f.png

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

aMmcBA7.png

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

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


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

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

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

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

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

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

 

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

 

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 местах — своей подкатегории и главной категории?

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


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

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


Создал переменную $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
Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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