我使用Codeigniter 2,我想更新多行。Codeigniter:更新多行
型号
这里是我的模型,但是,问题是,第一行只更新。
foreach ($this->input->post('qty') as $key => $value) {
$data = array(
'item_quantity' => $value,
'discount' => $this->input->post('discount')[$key],
'senior' => $this->input->post('qty')[$key]
);
$this->db->where('item_id', $this->input->post('item_id')[$key]);
$this->db->where('request_id', $this->input->post('request_id'));
return $this->db->update('medical_request_items', $data);
}
另一方面,我设法做到了这一点。
foreach ($query->result() as $row)
{
echo '<tr>';
echo '<input type="hidden" name="item_id[]" value="' . $row->item_id . '">';
echo '<td>' . $x++ . '</td>';
echo '<td>' . $row->item_id . '</td>';
echo '<td>' . $row->item_name . '</td>';
echo '<td><input type="text" size="1" name="qty[]" value="' . $row->item_quantity . '"></td>';
echo '<td>' . $row->item_retailprice . '</td>';
echo '<td><input type="text" size="2" name="discount[]" value="' . $row->discount . '"></td>';
echo '<td><input type="text" size="2" name="senior[]" value="' . $row->senior . '"></td>';
echo '<td>' . ($row->item_quantity * $row->item_retailprice) . '</td>';
echo '<td>' . (($row->item_quantity * $row->item_retailprice)-($row->item_quantity * $row->discount)-($row->item_quantity * $row->senior)) . '</td>';
echo '</tr>';
}
我试图回显/打印,它工作正常。但它不适用于多个更新。
编辑
所以我设法寻找出update_batch
的是,我有一个错误。
$data = array(
foreach ($this->input->post('qty') as $key => $value) {
array(
'request_id' => $this->input->post('request_id'),
'item_id' => $this->input->post('item_id')[$key],
'item_quantity' => $value,
'discount' => $this->input->post('discount')[$key],
'senior' => $this->input->post('senior')[$key]
)
}
);
$this->db->update_batch('medical_request_items', $data, 'item_id, request_id');
$ _POST包含什么?请显示结构。 – DFriend