【问题标题】:Insert cart data into database将购物车数据插入数据库
【发布时间】:2013-05-21 16:51:05
【问题描述】:

这是我将购物车中的数据插入数据库的代码。问题是当购物车中只有 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?
  • 另外,你应该考虑在成功后调用 header() 来重定向,而不是使用 js。
  • 你的 $max 变量中是否包含所有项目?

标签: php mysql database shopping-cart


【解决方案1】:

for 循环的最后一行是:

$customer_id=mysql_insert_id();

这意味着每次插入的客户价值都在变化。我想你的意思是:

$orderdetail_id=mysql_insert_id();

另外,您不需要将客户 ID 存储在 order_details 表中。它已经在orders 表中。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2023-03-16
    • 2015-01-26
    • 1970-01-01
    相关资源
    最近更新 更多