0

これは、ショッピング カートのデータをデータベースに挿入するコードです。問題は、カートにデータが 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>";
}
}
?>
4

1 に答える 1

0

forループの最後の行は次のとおりです。

$customer_id=mysql_insert_id();

つまり、インサートごとに顧客価値が変化しているということです。私はあなたが意味すると思います:

$orderdetail_id=mysql_insert_id();

order_detailsまた、顧客 ID をテーブルに保存する必要はありません。それはすでにorders表にあります。

最後に、すべての挿入には、次のような明示的な列リストが必要です。

$result=mysql_query("insert into bloom_orders(date, customer_id) values('$date', '$customer_id')");
于 2013-05-26T20:01:41.083 に答える