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查询(mysql,php)的帮助,我将不胜感激,我如何将第一个数组的所有值插入到一个列中,并将第二个数组的值插入到第二列中,而每个d值都匹配提供的数组。

谢谢。

4

1 回答 1

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 循环并为每组结果创建一个关联数组(我假设您的两个数组的计数相同?)如上所述。

于 2013-07-07T17:24:42.173 回答