我使用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