【发布时间】:2014-06-10 11:26:22
【问题描述】:
这是我的第一篇文章,希望有人能帮助我解决我遇到的这个问题。
我正在尝试从购物车表中取出一个商品,并将每一行插入到订单表中。他们提交订单后,它应该执行操作。这是我的代码。
if(isset($_GET['submitOrder'])) {
$timedate = $currentTime." at ".$currentDate;
$order_number = rand(10,100);
$cartOrder=$mysqli->query("SELECT * FROM cart WHERE members_id='".$members_id."'");
$cartOrder_total = $cartOrder->num_rows;
while($row=mysqli_fetch_assoc($cartOrder)) {
$stmt = $mysqli->prepare("INSERT INTO orders(order_number, members_id, product_id, quantity, date_submitted) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param('siiis', $order_number, $members_id, $row['product_id'], $row['quantity'], $timedate);
$stmt->execute();
$stmt->close();
}
header('Location: cart.php#orderplaced');
}
我的问题是它只在订单表中插入一个条目。即使购物车中有 4 件商品,它仍然只进入其中一项。
如果有人能指出我正确的方向,我将不胜感激!它现在只进入一行,我不知道为什么。
这是我的桌子:
(
cart_id int(11) NOT NULL AUTO_INCREMENT,
product_id int(11) NOT NULL,
merse_id int(11) NOT NULL,
date_added varchar(255) NOT NULL,
date_submited varchar(250) NOT NULL,
PRIMARY KEY ( cart_id ),
KEY cart_id ( cart_id ( cart_id ( cart_id`)
) ENGINE=InnoDB 默认字符集=latin1 AUTO_INCREMENT=153 ;
如果不存在则创建表orders (
order_id int(11) NOT NULL AUTO_INCREMENT,
order_number int(11) 非空,
members_id int(11) 非空,
product_id int(11) 非空,
quantity int(11) 非空,
date_submitted varchar(256) 非空,
主键 (order_id),
唯一键 order_number (order_number)
) ENGINE=InnoDB 默认字符集=latin1 AUTO_INCREMENT=422 ;`
【问题讨论】:
-
你没有提到你的问题。
-
对不起,我更新了我的帖子。但我的问题是,即使我的购物车中有 4 件商品,它也只会将其中一件插入到订单表中。
-
删除
$stmt->close();怎么样? -
你认为 for 循环在做什么?似乎毫无意义。
-
我试图删除 $stmt-close();部分,并且循环似乎不起作用。这就是我寻求帮助的原因。