2014-09-19 46 views
0

這是在我的模型get_db.php更新表函數命名爲「人」:笨活動記錄更新方法工作不正常

public function update1($data) { 

    $id = $data['fname']; 

    //echo $id; 

     $this->db->where('fname',$id); 

     $this->db->update('person',$data); 

     echo "updated successfully!"; 

     } 

相應的控制方法是:

public function updateValues(){ 

    $data['fname'] = $this->input->post('fname'); 
    $data['lname'] = $this->input->post('lname'); 
    $data['mobile'] = $this->input->post('mobile'); 

    $this->load->model('get_db'); 

    $this->get_db->update1($data); 

} 

數據正在成功從控制器傳遞給模型方法(我已經通過回聲測試)。但這部分模型方法:

$this->db->where('fname',$id);不起作用。

但是如果我通過任何隨機字符串where子句是這樣的:

$this->db->where('fname','anystring'); 

那麼它是工作,更新我的表「person'.Basically,$id沒有被正確傳遞一些reason.Please幫幫我。

注意:fnamelnamemobile是我的表人的列名。

+0

你確定你的數據庫更新,當您通過任何隨機字符串? – 2014-09-19 09:29:25

+0

@LokeshJain - 是的,我已經嘗試過無數次了。 – 2014-09-19 09:43:25

+0

是變量$ data ['fname']和您的數據庫列fname值是否相同?兩者應該是一樣的。我想在這裏你錯了。 – 2014-09-19 10:03:27

回答

0
Please try this 
//this is controller code 
public function updateValues(){ 

    $data['fname'] = $this->input->post('fname'); 
    $data['lname'] = $this->input->post('lname'); 
    $data['mobile'] = $this->input->post('mobile'); 
    $this->load->model('get_db'); 
    $this->get_db->update1($data); 
} 

//model 
public function update1($data) { 
     $fname = $data['fname']; 
     $this->db->like('fname',$fname); 
     $this->db->update('person',$data); 
     echo "updated successfully!"; 
    } 
+0

我試過你的方式,現在它更新每一行,不管它有什麼名字。 – 2014-09-19 09:42:36

-1

我認爲使用表ID或手機號碼(如果唯一的)更新行的最佳解決方案....因爲名稱或姓氏可能會重複。

+0

不,我的表中沒有主鍵。爲什麼我的代碼工作,如果我通過字符串手動傳遞fname的值? – 2014-09-19 09:48:18

+0

如果你傳遞fname,它會更新找到fname的所有記錄。因此,如果您想要更新參與者記錄,則需要使用身份證或手機號碼進行更新。 – 2014-09-19 09:58:57

0

$id應該從控制器傳遞到模塊。

在控制器中,您必須將id傳遞給模型函數作爲條件數組。您可以將記錄ID傳遞給updateValues函數作爲參數。或從POST。

public function updateValues($id){ 
    $data['fname'] = $this->input->post('fname'); 
    $data['lname'] = $this->input->post('lname'); 
    $data['mobile'] = $this->input->post('mobile'); 
    $this->load->model('get_db'); 
    $this->get_db->update1($data,array("id"=>$id)); 
} 

在模型:

public function update1($data,$condition) { 
    $id = $data['fname']; 
    //echo $id; 
     $this->db->where($condition); 
     $this->db->update('person',$data); 
     echo "updated successfully!"; 
    }