Вы вставляете данные в таблицы продуктов.
И вам нужно получить auto_increment_id для продуктов, которые вы только что вставили.
Это сложно, если вы вставляете несколько элементов.
Однако у вас есть одна запись для продукта, так что это просто:
Добавьте следующее после того, как вы вставите свой продукт:
echo "records for product added<br />";
$get_product_id = "SELECT LAST_INSERT_ID() as product_id";
$result = mysql_query($get_product_id);
$row = mysql_fetch_array($result);
$product_id = $row['product_id'];
echo "product_id is: ".$product_id;
Один из способов получения обогревателязначения должны добавить триггер к вашей таблице нагревателей:
DELIMITER $$
CREATE TRIGGER ai_heater_each AFTER INSERT ON heater FOR EACH ROW
BEGIN
INSERT INTO heater_inserts (heater_id, conn_id) VALUES (new.id, CONNECTION_ID());
END $$
DELIMITER ;
Это сохранит все идентификаторы нагревателей во временной таблице вместе с идентификатором текущего соединения.
Это гарантирует, что вы этого не сделаетестолкнуться с проблемами параллелизма, когда вы используете вставки от других клиентов.
Вы можете вставить таблицу product_heater
следующим образом:
INSERT INTO product_heater (id_product, id_heater)
SELECT $product_id, hi.heater_id FROM heater_inserts hi
WHERE hi.conn_id = CONNECTION_ID();
Не забудьте очистить таблицу heater_inserts, когда закончите.
DELETE FROM heater_inserts WHERE conn_id = CONNECTION_ID();
Вы можете использовать временные таблицы, которые не требуют очистки и не требуют connection_id, потому что они уникальны для сеанса, но в этом случае вам нужно создать таблицу в начале сеанса.
Также обратите вниманиечто временная таблица разрушается при разрыве соединения, поэтому вам нужно добавить некоторый шаблонный код, чтобы справиться с этим.
Вы можете использовать ключевое слово TEMPORARY при создании таблицы.Таблица TEMPORARY видна только текущему соединению и автоматически удаляется при закрытии соединения.Это означает, что два разных соединения могут использовать одно и то же временное имя таблицы, не конфликтуя друг с другом или с существующей, не являющейся TEMPORARY, таблицей с одним и тем же именем.(Существующая таблица скрыта до тех пор, пока временная таблица не будет удалена.) Для создания временных таблиц у вас должна быть привилегия CREATE TEMPORARY TABLES.