我正在尝试获取一个完整的订单,以保存到数据库中名为orders的表中。在数据库中,订单表只显示最后一个产品,但我需要它来显示订单上的所有产品。
在下面的代码($query2)中,它获取用户购物车中产品的所有id。(购物车里有两种产品)
然后我使用while循环来显示它们,但如果我尝试使用$pro_id变量将它们插入订单表($query3),它只会获取购物车中的最后一个产品并将其输入数据库。
如何将两种产品都输入订单表?我需要以某种方式使用数组吗?或者有不同的方法吗?
谢谢!
$ip = getIp();
$query = "SELECT * FROM cart WHERE ip='$ip'";
$result = mysqli_query($conn, $query);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$id = $row['id'];
$pro_qty = $row['quantity'];
$query2 = "SELECT * FROM product WHERE id='$id'";
$result2 = mysqli_query($conn, $query2);
if(mysqli_num_rows($result2) > 0){
while ($row = mysqli_fetch_array($result2)){
$pro_id = $row['id'];
}
}
}
}
if(isset($_POST['placeOrder'])){
$query3 = "INSERT INTO orders (productId) VALUES ('$pro_id')";
$result3 = mysqli_query($conn, $query3);
}
}
我在网上找到了一个人,他向我展示了一种不同的方法来完成我想要做的事情;我在数据库中创建了两个表("orders"answers"orderproducts")。使用下面的代码,我制作了它,这样,如果单击"placeOrder"按钮,它就会将客户的订单插入到"orders"表中(使用我创建并保存在变量"$orderId"中的唯一编号)。
然后,我获得了客户购物车中产品的id,并创建了一个while循环,该循环将贯穿购物车中的产品,并使用"$query3"将每个产品分别插入"orderproducts"表中其自己的行中,其中"orderId='$orderId'"($orderId是我创建的唯一编号)和"productId='$productId'"。
if(isset($_POST['placeOrder'])){
$query = "INSERT INTO orders (orderId) VALUES ('$orderId')";
$result = mysqli_query($conn, $query);
$ip = getIp();
$query1 = "SELECT * FROM cart WHERE ip='$ip'";
$result1 = mysqli_query($conn, $query1);
if(mysqli_num_rows($result1) > 0){
while($row = mysqli_fetch_array($result1)){
$id = $row['id'];
$query2 = "SELECT * FROM product WHERE id='$id'";
$result2 = mysqli_query($conn, $query2);
if(mysqli_num_rows($result2) > 0){
while ($row = mysqli_fetch_array($result2)){
$productId = $row['id'];
$query3 = "INSERT INTO orderproducts (orderId, productId) VALUES ('$orderId', '$productId')";
$result3 = mysqli_query($conn, $query3);
}
}
}
}
}
然后为了获取订单,我做了一个这样的查询:
$orderNumber = 5578;(This is a fake order number)
$query = "SELECT * FROM orders WHERE orderId='$orderNumber'";
$result = mysqli_query($conn, $query);
if($result){
$query1 = "SELECT * FROM orderproducts WHERE orderId='$orderNumber'";
$result1 = mysqli_query($conn, $query1);
}
您可以修改变量$pro_id,使其成为如下数组类型:
$pro_id=array()
然后使用它将您的id存储在此数组中。