我遇到的问题是在return start <= i && i <= end;
语句的每个循环中触发INSERT INTO
Mysql语句。
根据while
正确循环播放正确的次数,但echo
只能正常工作一次。
基本上问题是:“如何使用PHP或SQL语句循环遍历此SQL INSERT INTO
”
提前致谢
编辑:作为一个绝对的甜甜圈我没有意识到我已经为orderID设置了一个主键,它始终在工作。它只是不允许重复订单ID。感谢您的帮助
INSERT statement
答案 0 :(得分:0)
您可以通过从select语句中插入来优化该方法(将其称为“迁移”从一个表到另一个表):
"INSERT INTO orderdetail(selectionID, orderID)
SELECT selectionID,orderID FROM cart WHERE userID =".$_SESSION['user'];
参考:Mysql Doc
答案 1 :(得分:0)
Ka_lin的答案很好,但您的订单没有存储用户/购物车的详细信息?我发现他们之间没有关系
通常情况下,购物车的流程是
用户结帐和购物车成为订单(使用购物车中的商品生成订单ID)
insert into orders(cart_id,item_id,item_qty,item_price,create_datetime)
select cart_id,item_id,item_qty,item_price,now() from carts;
然后更新cart_status以将此购物车标记为“已完成”,以确保我们在此用户返回时创建新购物车
update carts set cart_status = 'ordered' where user_id = {$user_id};
继续处理订单!
===============
在看到OP评论后编辑
也许这种方式适合你
order_header
(存储通用信息 - 如order_type,地址,时间戳和用户)和order_detail
(存储商品/产品相关信息)表order_header
以生成order_id order_header
select order_id from order_header where user = {$user_id} and status = 'new'
获取order_id
order_detail
order_detail insert into
(order_id,some columns here...) select ('{$order_id}',some columns here...) from carts where user = {$user_id};
答案 2 :(得分:0)
已将orderID设置为主键。不能重复