我想将购物车中每件商品的ID插入数据库,并将此发票行与刚刚在同一案例中创建的发票结合起来。 目前,如果我按下按钮,它会向数据库添加一张新发票,之后它会添加购物车中的每一件产品,但现在我需要将第二个查询中的1替换为刚刚创建的发票ID。我怎样才能让它发挥作用?
case "apply":
$curdate = date('Y-m-d');
// new invoice
$sql = "INSERT INTO invoice (user_user_id, dates) VALUES ('1', '$curdate')";
$result = mysqli_query($con, $sql);
// for each item in cart insert into invoiceline
foreach ($_SESSION["cart_item"] as $item){
$car = $item["id"];
$sql = "INSERT INTO invoice_line (car_car_id, invoice_invoice_number) VALUES ('$car', '1')";
$result = mysqli_query($con, $sql);
}
unset($_SESSION["cart_item"]);
break;
}
}
invoice_id不是主键,而是外键,表doenst有主键所以我不认为我可以使用mysqli_insert_id?
答案 0 :(得分:1)
您可以使用:
$inserted_id = mysqli_insert_id($con);
或面向对象的风格:
$inserted_id = $con->insert_id;
$ inserted_id 将具有刚刚插入的行的值(应该在表中自动增加)。
因此,您的第二个查询将如下所示:
$sql = "INSERT INTO invoice_line (car_car_id, invoice_invoice_number) VALUES ('$car', '$inserted_id')";