我创建了一个表来插入Books的数据,其值取自表单。现在我想执行CRUD操作。但我在更新数据方面遇到了问题。输入的数据不是替换旧数据,而是作为新条目。我该怎么办?
我所做的如下:
我在主页上创建了一个链接,该链接重定向到一个页面,其中显示了书籍列表及其详细信息,可以通过另一个链接输入以添加书籍。 Book_ID已被视为库表的主键。
现在,在显示列表的页面中,我添加了“编辑”和“删除”按钮。 “删除”按钮工作正常,因为语法直接且简单。但是对于编辑按钮,它会重定向到添加图书页面,但表单会使用$ Book_ID = $ B $ this-> - > uri-> segments [3]自动填充特定数据;我已经发送到base_model以使用该特定的Book_ID从该特定行检索数据。
现在我遇到的问题是,在编辑数据之后,我已经放了一个标签......但我不确定是否必须这样做......我被告知必须在那里。但事实上,我实际上必须将Book_ID发送回控制器,并且应该将其发送到模型,在该模型中,它使用该特定id来更新该行中的数据。真的很困惑!
答案 0 :(得分:0)
是的,您必须将book_id
发送回update 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;
}
`
这是更新记录的简单方法。
答案 1 :(得分: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;
}
做到这一点,它会起作用。