我有一个带有产品ID的PHP数组p_ids(购物车)。我最后插入了订单ID。我需要将购物车中的所有产品插入数据库。一切正常,我只是不能从数组中插入数据。将会有相同的订单ID,但与数组的产品ID不同。
<?php
include "connect.php";
$conn = $_SESSION['connection'];
$p_ids = array();
$p_ids = $_SESSION['cart'];
$name = $_REQUEST["name"];
$surname = $_REQUEST["surname"];
$email = $_REQUEST["email"];
$street = $_REQUEST["street"];
$city = $_REQUEST["city"];
$psc = $_REQUEST["psc"];
$phone = $_REQUEST["phone"];
$sql0 = mysqli_query($conn, "SELECT * FROM products WHERE id IN (" . implode(',', array_map('intval', $p_ids)) . ") AND ordered=1") or die(mysqli_error());
$check = mysqli_num_rows($sql0);
if ($check > 0) {
echo "0";
} else {
$sql1 = "INSERT INTO orders VALUES ('', '$name', '$surname', '$email', '$phone', '$street', '$city', '$psc', CURRENT_TIMESTAMP, '', '', '', '')";
if (mysqli_query($conn, $sql1)) {
$last_id = mysqli_insert_id($conn);
$sql2 = mysqli_query($conn, "UPDATE products SET ordered=1 WHERE id IN (" . implode(',', array_map('intval', $p_ids)) . ")") or die(mysqli_error());
for ($i = 0; $i <= count($p_ids); $i++){
there i need insert arrray into DB
}
echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
echo "Error: " . $sql1 . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
echo "1";
}
?>
答案 0 :(得分:2)
使用foreach
循环将每个产品ID插入表中。
$stmt = mysqli_prepare($conn, "INSERT INTO order_products (order_id, product_id) VALUES (?, ?)");
mysqli_stmt_bind_param($stmt, "ii", $last_id, $product_id);
foreach ($p_ids as $product_id) {
mysqli_stmt_execute($stmt);
}