将多个数组插入不同的行

时间:2013-07-07 16:59:41

标签: php mysql arrays

我正在将输入字段收集为要插入数据库中不同行的数组。但是它只插入数组的第一行。

请帮忙。我有一些处理数组的问题。我不知道如何构建查询,我试图在线搜索,我得不到足够的帮助。我非常感谢您对查询的帮助。

这是我的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查询(mysql,php)的帮助,我将非常感激。列,虽然每个都匹配d个提供的数组。

感谢。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要将两个数组合并为

$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;
  }  
}

所以改为做两个foreach循环并将结果放在不同的数组中,你可以使用一个foreach循环并为每组结果创建一个关联数组(我假设你的两个数组上的计数是相同的?),正如我所提到的上方。