1

私は配列に入り始めましたが、うまく機能しません。私は爆発/内破関数の使用に慣れていますが、コードのこの部分では配列を使用すると作業が楽になると思います。呼び出される関数は次のとおりです。

function save_event($event_items = NULL) {
include 'connect.php';

$now = date("Y-m-d H:i:s");
$sqla = "
INSERT INTO `event`(`event_items`, `event_entered`)
    VALUES ('$event_items','$now')";

    $resulta = mysqli_query($link, $sqla);
    if(!$resulta)
        {
        echo '<br/>An error occurred while inserting your data. Please try again later.<br/>';
        }
    else
        { echo 'this is the variable to be stored:<br/>';
          print_r($event_items);

          $sql = "SELECT * FROM `event` WHERE event_entered = '".$now."'";
          $result = mysqli_query($link, $sql);

          if($result)
            { while($row = mysqli_fetch_assoc($result))
                  { echo '<br/></br>This is the value of the database:<br/>';
                    print_r ($row['event_items']);
                  }
            }
          }
}

この関数は以下を出力します。

this is the variable to be stored:
Array( [0] => Array ( [item] => Powered Speaker [note] => [quantity] => 2 [price] => 200.00 [category] => Audio ) [1] => Array ( [item] => Wireless Microphone [note] => Lavalier [quantity] => 3 [price] => 175.00 [category] => Audio ))

This is the value of the database:
Array

phpMyAdmin では、列に表示されるのevent_itemsは単語だけArrayです。

追加情報: Groups というテーブルがあり、各グループには 1 つまたは複数の注文 (Order という別のテーブル) があり、各注文にも 1 つまたは複数のイベント (別のテーブル) があります。最後に、各イベントには 1 つまたは複数のアイテム (各アイテムに対応する価格、数量、メモ、およびカテゴリ) があり、イベント テーブルの 1 つ (または複数) の列に格納されます。

4

3 に答える 3

3

You are trying to insert multiple values in a single database record, this is not impossible but it's also not recommended in general.

The main reason someone would do this would be for optimization, which is not at all something you should worry about for now.

What you really want to do is review your database schema, if you wish to store an array of value, you need to create a new row (record) for each of those. This might necessitate the creation of another table, depending on what you want to do.

于 2013-06-20T21:04:26.280 に答える
2

serialize() 関数を使用して配列をシリアル化できます。

例:

serialize($event_items);

値の格納可能な表現を生成します。

これは、型や構造を失うことなく PHP の値を保存したり渡したりするのに役立ちます。

http://php.net/manual/en/function.serialize.php

于 2013-06-20T21:01:42.490 に答える