2014-03-12 91 views
0

我試圖通過編輯基於1 id的多個valuse的窗體來更新數據庫。我嘗試使用$ this-> db-> update_batch('table',$ data,'id');我試圖使用$ this-> db-> update_batch('table',$ data,'id');更新批次codeigniter

但我想我沒有得到正確的解析將數據以批處理模式插入數據庫。

我的問題是,如果這種方式是正確的:

<input type="text" name="item_id[]" value=""> 
<input type="text" name="rep_id[]" value=""> 
<input type="text" name="ean[]" value=""> 


$update_item_id  = $this->input->post('item_id'); 
$update_rep_id  = $this->input->post('rep_id');  
$update_ean   = $this->input->post('ean'); 

$update_items = array(
       'id'  => $update_item_id, 
       'rep_id' => $update_rep_id, 
       'ean'  => $update_ean 
); 

if($this->form_validation->run() == true && $this->model_m->editbatch($rep_id, $update_items)){ 

this->session->set_flashdata('message', "All is ok"); 
      redirect("controller", 'refresh'); 

}

型號:

public function editbatch($id, $update_items) 
{ 
    $this->db->update('table', $update_items, 'id'); 
} 

任何幫助表示讚賞。

回答

0

你不正確地使用更新,嘗試這樣的:

$this->db->where('id', $id); 
$this->db->update('mytable', $data); 
+0

不要忘了加載數據庫函數:$ this->負載>數據庫();並在您的模型函數中添加return = true – Mazeltov

+0

結果是:'字段列表'中的未知列'Array' UPDATE'mytable' SET'item_id' = Array,'rep_id' = Array,'ean' = Array WHERE 'rep_id' ='1' – Dario

0

使用update_batch而不是update

public function editbatch($id, $update_items) 
{ 
    $this->db->update_batch('table', $update_items, 'id'); 
}