1

データベースのさまざまな行に挿入される配列として入力フィールドを収集しています。ただし、配列の最初の行のみを挿入します。

よろしくお願いします。配列の処理に問題があります。クエリの作成方法がわからず、オンラインで検索しようとしましたが、十分なヘルプが得られませんでした。クエリのヘルプに感謝します。

ここに私のHTMLコードがあります:

<input type = "text" class = "form_element" name = "wat_office_type[]" />
<input type = "number" name = "wat_office_price[]" class = "form_element" />

jQuery を使用して入力ボックスを追加します。

これが私のphpです:

$wat_office_type_post = $_POST['wat_office_type'];
$wat_office_price_post = $_POST['wat_office_price'];
$wat_office_type = array();
$wat_office_price = array();

foreach ($wat_office_type_post as $type) {
    if (!empty($type))
        $wat_office_type[] = $afrisoft->antiHacking($type);
}

foreach ($wat_office_price_post as $post) {
    if (!empty($post))
        $wat_office_price[] = $afrisoft->antiHacking($post);
}

私は2つの別々の行に挿入して、次のようなことを達成したい:

--------------------------------------------
| Pk | wat_office_type  | wat_office_price |
--------------------------------------------
| 1  | executive office |             1000 |
--------------------------------------------
| 2  | Training room    |             4000 |
--------------------------------------------
| 3  | Events room      |             5000 |
--------------------------------------------

insert最初の配列のすべての値を 1 つの列に挿入し、2 番目の配列の値を 2 番目の列に挿入する方法について、クエリ (mysql、php) で助けを得ることができれば幸いdです。アレイが提供されます。

ありがとう。

4

1 に答える 1

0

私の理解が正しければ、2 つの配列を次のようなものに結合する必要があります。

$list = array(
 array('pk' => 1, 'type' => 'executive', 'price' => 1000),
 array('pk' => 2, 'type' => 'training room', 'price' => 4000),
 array('pk' => 3, 'type' => 'events room', 'price' => 5000)
);

次に、 foreach ループを呼び出して、次のように各要素でデータベースをクエリできます

foreach($list as $key => $value) {
$sql = "INSERT INTO table_name (pk, type, price) VALUES (?, ?, ?)"; 
$query = $this->db->prepare($sql);
$params = array($value['pk'], $value['type'], $value['price']);
  if($query->execute($params)) {
    return true;
  } else {
    return false;
  }  
}

したがって、2 つの foreach ループを実行して結果を異なる配列に入れる代わりに、1 つの foreach ループを使用して、結果のセットごとに連想配列を作成することができます (両方の配列のカウントは同じだと思いますか?)。

于 2013-07-07T17:24:42.173 に答える