我希望使用foreach
从数据库表中更新几行但是会出现以下错误:
这是我的PHP代码:
$id_units = $this->input->post('id_units');
$name_un = $this->input->post('name_units');
$price_un = $this->input->post('price_units');
$description_un = $this->input->post('explanation_units');
$ex_un = $this->input->post('addition_units');
$service_un = $this->input->post('checkbox_units');
$data2 = array();
foreach ($name_un as $idx => $name) {
$data2 = array(
'relation' => $id_residence,
'name_un' => $name_un[$idx],
'price_un' => $price_un[$idx],
'description_un' => $description_un[$idx],
'ex_un' => $ex_un[$idx],
'service_un' => json_encode($service_un[$idx]), // This Is Line Number: 212
);
$this->db->update('hotel_units', $data2, array('id' => $id_units[$idx]));
};
上面的代码有这个错误:
发生数据库错误
错误编号:1054
未知列 'where子句'中的'Array'更新hotel_units
SET0
=数组 WHEREid
=数组
文件名: D:\ xampp \ htdocs \ system \ database \ DB_driver.php
行号:330
更新
我有新的错误:
遇到PHP错误
严重性:通知
消息: 未定义的偏移量:1
文件名:residence.php
行号: 212
遇到PHP错误
严重性:通知
消息:未定义的偏移量:2
文件名:residence.php
行 编号:212
遇到PHP错误
严重性: 注意
消息:未定义的偏移量:3
文件名: residence.php
行号:212
'service_un' =>...
是复选框。请参阅以上php代码中的行号:212
答案 0 :(得分:1)
看起来$id_units
是一个值数组。
您可以尝试使用此代码,但它假定,与其他输入字段一样,id也是一个数组,并且具有与其他数据相同的索引。你没有提供你的html表单所以我只是猜测....无论如何,$ this-> db-> where()的最后一个参数需要是一个单独的值,即使你把它写成一个数组(但是一个元素)。
$id_units = $this->input->post('id_units');
$name_un = $this->input->post('name_units');
$price_un = $this->input->post('price_units');
$description_un = $this->input->post('explanation_units');
$ex_un = $this->input->post('addition_units');
$service_un = $this->input->post('checkbox_units');
$data2 = array();
foreach ($name_un as $idx => $name) {
$data2 = array(
'relation' => $id_residence, // Or is it $id_residence[$idx] ?
'name_un' => $name_un[$idx],
'price_un' => $price_un[$idx],
'description_un' => $description_un[$idx],
'ex_un' => $ex_un[$idx],
'service_un' => json_encode($service_un[$idx]),
);
$this->db->update('hotel_units', $data2, array('id' => $id_units[$idx]));
};