如何在一个数据库列中输入多个值


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"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存储在此数组中。