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