2013-08-06 97 views
-1

我創建了一個表來插入書籍的數據,其中的值取自一個表單。現在我想執行CRUD操作。但是我在更新數據時遇到了問題。輸入的數據不是替換舊數據,而是作爲新條目。我必須做什麼?通過Codeigniter更新記錄

我所做的是如下:

我建立了其重定向到一個頁面,它顯示它可以通過其他鏈接進入的書籍和他們的詳細資料列表中的主頁的鏈接增加書籍。 Book_ID已被視爲庫表的主鍵。

現在在它顯示列表的頁面中,我添加了一個「編輯」和一個「刪除」按鈕。由於語法直接且簡單,刪除按鈕正常工作。但是對於編輯按鈕,該按鈕重定向到添加書籍頁面,但該表單使用$ Book_ID = $ B $ this - > - > uri-> segments [3]自動填充特定數據;我已發送到base_model以從特定的Book_ID的特定行中檢索數據。

現在的問題是,在編輯數據後,我已經放了一個標籤......但我不太確定是否必須這樣做..我被告知它必須在那裏。但事實上,我實際上必須將Book_ID發送回控制器,並將其發送到使用該特定ID更新該行中的數據的模型。我真的很困惑!

+0

什麼問題在更新後在控制器中再次獲取book_id? –

+0

顯示一些代碼,以便我們可以幫助您\。 –

+0

你在uri中寫入錯誤的參數是$ this-> uri-> segment(3) –

回答

0

是的,你必須送回book_idupdate records。你可以在模型中以這種方式

你的控制器

`public function update_books($book_id) 
{ 
    $data=$this->Your_model_name->book_data($book_id); 
    if($data) 
    { 
     'your success message'; 
    } 
    else 
    { 
     'Your error message'; 
    } 
} 
` 

做到這一點,現在

` 
public function book_data($book_id) 
{ 
    $this->db->where('id',$book_id); 
    if($this->db->update('TABLE_NAME',array('field_name'=>$this->input->post('post_variable_name')))) 
    return true; 
    else 
    return false; 

} 
` 

這是一種更新記錄的簡單方法。

0

發送你的數據作爲陣列和記錄的ID你想更新它。

控制器

$form_data = array('name'=>$this->input->post('name'), 
        'email'=>$this->input->('email') 
       ); 
$this->crud_model->update($form_data,$id); 

模型:

function update($data,$id) 
{ 
    $this->db->trans_start(); 
    $this->db->where('id',$id); 
    $this->db->update('yourtablename',$data); 
    $this->db->trans_complete(); 
    return TRUE; 
} 

做到這一點,它會工作。