2017-04-02 20 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

のnoobと初心者イムなかったので、任意の提案や差別は、私にはokです - - - - - - |
| cart_id | product_name |
| - - - - - - | - - - - - - - - - - - - |
| - -1 - | - - - - ラップトップ1 - - - |
| - - 2 - - | - - - ノートパソコン2 - - - |
| - - - - | - - - - - - - - - - - - | - - - - - - | - | - - - - - - - - - - - - - - - |私が欲しい

出力はtbl_orders

でLaptop1、Laptop2

店です
|オーダーID | - - - 製品 - - - - - - |
| - - - - - - - - - - - - - - - - - - - - - - |
| - -1 - - - | - Laptop1、Laptop2 - |
| - - - - | - - - - - - - - - - - - - - |

は申し訳ありませんが私は私はあなたの質問を理解していない

+0

を役に立てば幸い、あなたは単一のフィールドでそれを保存したり、さまざまな分野での単一の値を保存するために、それをシリアル化するためにきました。 – David

答えて

0

ここでテーブルを作る方法を知りません。配列のデータをテーブルの複数の行に挿入する方法を尋ねていますか?そのためには、配列要素ごとに1つずつ、複数のクエリを作成し、適切なデータをバインドして実行するだけです。このために配列を繰り返し処理するのが最も簡単です。例えば

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

私のテーブルのデータに1つを挿入してください –

+0

ああ、複数の値を1つのフィールドに保存したいのですか?それを行うための組み込みの方法はありません、自分で望むフォーマットを決める必要があります。 implode()関数を使用して、配列から区切られたリストを作成し、それを格納するか、serialize()関数を使用してより堅牢で読みにくい文字列を自動的に作成することができます。 – IceMetalPunk

+0

thatsほとんど私の問題が解決しましたが、私はLaptop1、Laptop2、Laptop1、Laptop2を手に入れますか?私はimplode()を使用しました。 –

0

この関数は、ここでhttps://stackoverflow.com/a/36190690/6106973複数の行に同じ質問を挿入します。

最初のパラメータとしてテーブルの名前を渡す必要があります.2番目のフィールドは、$ 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); 

} 
関連する問題