[英]How to enter more than one value into one database column
我正在尝试获取完成的订单,以保存到数据库中称为“订单”的表中。 在数据库中,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”和“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在这个数组中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.