【发布时间】:2016-09-16 17:23:52
【问题描述】:
我遇到的问题是在 while 语句的每个循环期间触发 INSERT INTO Mysql 语句。
根据 echo 返回正确的次数,它正确循环,但是 INSERT INTO 只工作了 1 次。
基本上问题是:“我如何使用 PHP 或 SQL 语句循环遍历这个 SQL INSERT statement”
提前致谢
编辑:作为一个绝对的甜甜圈,我没有意识到我已经为 orderID 设置了一个主键,它一直在工作。只是不允许 orderID 重复。
感谢您的帮助
<?php
if(isset($_GET['checkout']))
{
$sql="SELECT * FROM cart WHERE userID =".$_SESSION['user'];
$query= mysqli_query($conn,$sql);
while ($row = mysqli_fetch_array($query)) {
$querys= "INSERT INTO `orderdetail`(`orderID`, `selectionID`) VALUES (LAST_INSERT_ID(),{$row['cardchoiceID']})";
$performit = $conn->query($querys);
echo("testing");
}
}
?>
【问题讨论】:
-
你应该做一个“for each”循环。
-
Object Orientated和Procedural代码的奇怪组合 - 但Insert语句似乎使用上一个插入的 id 更新 - 这真的是预期的效果吗? -
您可能会多次插入它,但您将 orderID 设置为第一个循环后的最后一个 orderdetail ID
-
last_insert_id 从名为 orders 的表中获取 orderID,以便它们与同一订单中的其他项目匹配。所以在这个 orderDetails 表中,有所有订购过的商品,旁边有一个订单 ID。即使它只是一个随机数,尽管购物车中有 4 个,但它仍然只在表中生成 1 个插入项目
-
LAST_INSERT_ID()总是从完成的最后一个 INSERT 中获取最后一个插入 ID。这意味着在第一次通过后它不再是您的订单 ID。
标签: php mysql sql mysqli sql-insert