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

Помогите сделать запрос к бд для добавления товаров у мультимагазин


Recommended Posts

Здравствуйте, нужно ваша помощь, есть несколько мультимагазинов, товары в них добавляю запросом, но магазинов может быть несколько десятков и каждый раз делать запрос с указанием id не очень удобно. Как сделать выборку всех магазинов?

Вот сам запрос

 

INSERT INTO `oc_product_to_store` (`product_id`, `store_id`) SELECT `product_id`, 1 FROM `oc_product`;

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


Вам по сути нужно сделать цикл по всем магазинам и в цикле делать вот этот ваш запрос, а вместо единицы подставлять store_id
Ну и дефолтный store_id = 0 не забыть.
Проще это сделать это через PHP в магазине.
 

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

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

Вам по сути нужно сделать цикл по всем магазинам и в цикле делать вот этот ваш запрос, а вместо единицы подставлять store_id
Ну и дефолтный store_id = 0 не забыть.
Проще это сделать это через PHP в магазине.
 

 

 да но в php не силен(

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


drop procedure if exists InsertToStore;
DELIMITER //  
CREATE PROCEDURE InsertToStore()   
BEGIN
DECLARE i INT DEFAULT 1;
WHILE (i <= 4) DO
    INSERT INTO `oc_product_yo_store` (product_id, store_id) SELECT product_id, i FROM oc_product;
    SET i = i+1;
END WHILE;
END;
//  

CALL InsertToStore();

 

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

так это только от 1 до 4, а если добавится новый магазин? А если не по порядку store_id в базе?
Тут нужно курсор делать и по курсору пробегать...
Легче через php сделать и забыть.

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

прям беда
 

drop procedure if exists InsertToStore;
DELIMITER //  
CREATE PROCEDURE InsertToStore()   
BEGIN

DECLARE done INT DEFAULT FALSE;
DECLARE id INT;

DECLARE store CURSOR FOR SELECT store_id FROM oc_store;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

Open store;
WHILE not done  DO 
	FETCH store INTO id;
	REPLACE INTO `oc_product_yo_store` (product_id, store_id) SELECT product_id, id FROM oc_product;
END WHILE;
Close store; 
END;
//  

CALL InsertToStore(); 

 

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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