簡體   English   中英

如何在一個數據庫列中輸入多個值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM