2012-09-02 50 views
4

我可以在數據庫中插入多行,但問題是當我嘗試更新它時,會出現Codeigniter錯誤消息。這裏是我的模型,實際上我沒有什麼重要的控制器來查找錯誤,是因爲我只是將該模型加載到控制器中。在Codeigniter中更新多行

$data = array(); 
//$todayDate = date('Y-m-d'); 
for($i = 1; $i < count($_POST['code']); $i++) { 
    //$code=$_POST['code'][$i]; 
    if($_POST['code'][$i] != '') { 
     $data[] = array(
      $code='code' => $_POST['code'][$i], 
      'price' => $_POST['sell'] 
      ); 
    } 
} 
$linksCount = count($data); 

if($linksCount) { 
    $this->db->where('code',$code); 
    $this->db->insert_batch('sell_rate', $data); 
} 

return $linksCount; 

回答

3

在你Model以下部分應

$data[] = array(
    $code='code' => $_POST['code'][$i], 
    'price' => $_POST['sell'] 
); 

替換

$data[] = array(
    'code' => $_POST['code'][$i], 
    'price' => $_POST['sell'] 
); 

,並更新值,你應該使用update_batch代替insert_batch

$this->db->update_batch('yourtableName', $data, 'code'); // 'code' is where key 

yourtableName替換爲您的原始表名,code正用於where鍵,因此您不需要使用$this->db->where('code',$code)

參考:CodeIgniter

+0

它給出了一個錯誤未知的列在字段list.its陣列試圖插入「數組」而不是陣列內的數據 –

+1

您的代碼作品感謝vaia.but會有一些細微的變化。這將是'價格'=> $ POST ['賣'] [$我] –

+0

我有一個問題,如果我不發佈任何賣場的代碼,它會設置代碼價格爲0.但我想保持它以前的value.it意味着如果我沒有把任何價值的代碼,它會保持其以前value.please幫助我解決這個 –