2017-04-02 168 views
-2

我不知道如何將數組數據存儲在數據庫中,我只知道讀取和顯示數據。任何建議或歧視是確定我,因爲我沒有得到的邏輯和我是一個菜鳥新手和如何將數組值存儲在MySQL數據庫中

<?php 
    $cart_statement = "SELECT * FROM user_cart WHERE email = '$email'"; 
    $cart_res = mysqli_query($con,$cart_statement); 
    $storeArray = Array(); 
    $cart_num = mysqli_num_rows($cart_res); 
    while ($cart_row = mysqli_fetch_array($cart_res)) { 
     echo $storeArray[] = $cart_row['product_name'].","; 
    } 
    ?> 

MySQL表user_cart

| - - - - - - | - - - - - - - - - - - - |
| cart_id | product_name |
| - - - - - - | - - - - - - - - - - - - |
| - - -1 - - | - - - 色氨酸1 - - - |
| - - -2 - - | - - 模板2 - - - |
| - - - - - - | - - - - - - - - - - - - |

輸出我要的是Laptop1,Laptop2

店tbl_orders

| - - - - - - - | - - - - - - - - - - - - - - - |
| order_id | - - - 產品 - - - - - |
| - - - - - - - | - - - - - - - - - - - - - - - |
| - - -1 - - - | - Laptop1,Laptop2 - |
| - - - - - - - | - - - - - - - - - - - - - - - |

對不起,我不知道如何做桌子這裏

+0

用於存儲陣列,您對序列化將其保存在一個字段或單值存儲在不同的領域。 – David

回答

0

我不知道我理解你的問題。你問如何從數組中插入數據到你的表的多行?爲此,您只需創建多個INSERT查詢,每個數組元素一個,並使用綁定到它們的適當數據執行它們。這對於遍歷數組來說是最簡單的。

例如:

foreach ($cart_row as $value) { 
    $stmt = "INSERT INTO user_cart(ProductName, Qty, Price) VALUES (?, ?, ?)"; 
    $stmt = mysqli_stmt_prepare($con, $stmt); 
    mysqli_stmt_bind_param($stmt, "sii", $value["product_name"], $value["quantity"], $value["price"]); 
    mysqli_stmt_execute($stmt); 
    mysqli_stmt_close($stmt); 
} 
+0

將它作爲一個插入我的表中的數據 –

+0

哦,所以你想要多個值存儲在單個字段?沒有內置的方法來做到這一點,你必須決定你想要的格式。您可以使用implode()函數從數組中創建一個分隔列表並存儲該列表,或使用serialize()函數自動從中創建一個更健壯但不易讀的字符串。 – IceMetalPunk

+0

這幾乎解決了我的問題,但我得到Laptop1,Laptop2,Laptop1,Laptop2?我用implode(); –

0

該功能用於插入這裏https://stackoverflow.com/a/36190690/6106973多行同樣的問題。

您必須傳遞第一個參數作爲表名,第二個關聯數組的名稱作爲鍵的列,如$ data = ['column_name'=> $ value];

下面是代碼,希望它有助於

public function insert($table, $data) 
{ 

    $query='INSERT INTO '.$table.' ('; 
    foreach($data as $key => $value) 
    { 
     $query .= $key.','; 
    } 
    $query = substr($query, 0, -1); 
    $query .= ') VALUES ('; 
    foreach($data as $key => $value) 
    { 
     $query .= ':'.$key.','; 
    } 
    $query = substr($query, 0, -1); 
    $query .= ');'; 

    $insert = $this->db->prepare($query); 
    $insert->execute($data); 

} 
相關問題