php - 将购物车数据插入数据库

标签 php mysql database shopping-cart

这是我的代码,用于将购物车中的数据插入数据库。问题是当购物车中只有 1 个数据时它会起作用。如果购物车中有超过 1 件商品,我该如何使其工作。我将其发送到数据库的原因是为了让管理员可以查看准备它的顺序。

<?php
require_once('auth.php');
?>
<?php
include("dbase.php");
include("functions.php");
if(isset($_REQUEST['command'])){
if($_REQUEST['command']=='update'){
$name=$_REQUEST['name'];
$address=$_REQUEST['address'];

$sum=get_order_total('grandTotal');

$result=mysql_query("insert into bloom_customers    values('','$name','$address','$phone','$sum','$date','$time','$banks')");
$customer_id=mysql_insert_id();
$date=date('Y-m-d');

$result=mysql_query("insert into bloom_orders values('','$date','$customer_id')");
$orderid=mysql_insert_id();


$max=count($_SESSION['cart']);
for($i=0;$i<$max;$i++){
    $proid=$_SESSION['cart'][$i]['product_id'];
    $q=$_SESSION['cart'][$i]['qty'];
    $price=get_price($proid);
    mysql_query("insert into order_details values ($orderid,$proid,$q,$price,$customer_id)");
    $customer_id=mysql_insert_id();
}
echo "<script type='text/javascript'>window.location='ordersubmitted.php' </script>";
}
}
?>

最佳答案

for 循环的最后一行是:

$customer_id=mysql_insert_id();

这意味着每次插入的客户值(value)都会发生变化。我认为你的意思是:

$orderdetail_id=mysql_insert_id();

此外,您无需将客户 ID 存储在 order_details 表中。它已位于 orders 表中。

最后,所有插入都应该有明确的列列表,例如:

$result=mysql_query("insert into bloom_orders(date, customer_id) values('$date', '$customer_id')");

关于php - 将购物车数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16762874/

相关文章:

php - 当我定义它时类中 undefined variable

mysql - 如何使用存储过程从多个数据输入返回两个日期之间的数据

sql - Sql Server 的@@Identity 和@@error 的mysql 等价物是什么以及如何在mysql 中使用try catch

php - 从 php 查询 mysql

php - 将 MySQL 数据打印到文本框

php - 跨 Azure Cosmos 中的多个集合查询记录

php - 如何使用MySQL全文搜索短语而不是使用LIKE

php - 提交日期范围之间的日期 - mySQL

php/mysql 如果为空则忽略输入

mysql - 从表中获取缺失的 id