PHP购物车,输入数据库
所以我现在写的是用户下单的代码。他们会在购物车中添加一本书,然后按“checkout”,然后列出他们需要支付的费用,然后按“placeorder”,然后需要将变量发送到我的数据库。在我的数据库中,我有两个不同的表,第一个是Orders,其中OrderID随放置的每个订单而递增。在订单中,我必须输入CustomerID、发货成本、税金和总价。然后,对于每个项目,我必须在OrderDetails中输入OrderID、ProductID、Quantity和LineTotal 但是,我不知道如何输入OrderID,每个项目的顺序都对应于Orders表中生成的OrderID。例如,我订了两本书,a书和b书。它将添加一个新订单,并将CustomerID设置为登录用户的ID、运费、税金和总额。然后它会将OrderID设置为比最后一个位置高一个数字,比如19017。然后,我必须获得orderID并将订单id19017、ProductIDB1、quantity1和LineTotal输入到OrderDetails中,不管这本书花费多少。然后,我必须使用相同的OrderID对书b执行相同的操作。当我将订单id插入订单并在输入订单详细信息时使用它时,我不知道如何从中提取订单id。谢谢PHP购物车,输入数据库,php,mysql,database,Php,Mysql,Database,所以我现在写的是用户下单的代码。他们会在购物车中添加一本书,然后按“checkout”,然后列出他们需要支付的费用,然后按“placeorder”,然后需要将变量发送到我的数据库。在我的数据库中,我有两个不同的表,第一个是Orders,其中OrderID随放置的每个订单而递增。在订单中,我必须输入CustomerID、发货成本、税金和总价。然后,对于每个项目,我必须在OrderDetails中输入OrderID、ProductID、Quantity和LineTotal 但是,我不知道如何输入Or
if($_SESSION['cart'])
{
echo"<pre># Title Price Quantity Total</pre>";
foreach($_SESSION['cart'] as $product_id => $quantity)
{
$query="Select ProductID , Title , Price From Products where ProductID='$product_id'";
$result = mysql_query($query);
list($ProductID, $Title, $Price) = mysql_fetch_row($result);
$cost = $Price * $quantity;
$total = $total + $cost;
echo "<br>";
echo "<br>";
echo "<br>";
echo "$ProductID      ";
echo "$Title      ";
echo "$ $Price          ";
echo "$quantity    ";
echo "            $ $cost      ";
echo "<br>";
echo"___________________________________________________________________________________________________________________________";
}
If($total<25)
$ship=4.50;
else if($total <50)
$ship=7;
else if($total>=50)
$ship=10.25;
else
$ship=0;
$tax=$total*.06;
$totalPrice=$total+$ship+$tax;
$query2="Select CustomerID from Customers where Email='$username'";
$result2 = mysql_query($query2);
list($CustomerID) = mysql_fetch_row($result2);
$query3="Insert into Orders(CustomerID, ShippingCost,Tax,Total) values($CustomerID,$ship,$tax,$totalPrice)";
mysql_query($query3);
$query4="Insert into OrderDetails(ProductID,Quantity,LineTotal) values('$ProductID',$quantity,$total)";
mysql_query($query4);
}
当您使用mysql函数时,您可以使用
但我强烈建议使用PDO或mysqli。有关这方面的更多信息,请参阅。首先,任何基于mysql_*函数的新代码都被认为是不好的做法,可以使用PDO或mysqli_*函数。第二,答案是运行selectlast\u insert\u id:我使用了它。然而,如果我在我拥有的地方使用它,它将只插入最后输入的产品。我必须以某种方式在循环中获取orderID,这样它才能读入具有相同orderID的所有产品,我无法理解。您需要做的就是在循环中使用$orderId。循环运行后,query3就会运行,因此如果我在循环中使用它,它就不知道$orderId是什么。代码中只有一个循环,并且它里面没有任何insert查询。如果$total<25,您的循环将在之前结束。您是否需要进行另一个循环以进行插入?
$query3="Insert into Orders(CustomerID, ShippingCost,Tax,Total) values($CustomerID,$ship,$tax,$totalPrice)";
mysql_query($query3);
$orderId = mysql_insert_id();