[mysql]由 uri 中传递 id Codeigniter 更新数据库行

发布时间: 2015/6/11 22:09:20
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个编辑按钮为每个行 (view1) 列表中。当单击获取该编辑按钮时,将打开网站,我可以在其中编辑的行字段 (视图 2)。它的行 id 传递到视图 2 正确 (在下面示例中的 id 11) 哪些 uri 段我调用模型用数组数据从控制器更新这行 11 我也传递给模型的数组数据。但它仍然不会更新。谢谢你的帮助。

(查看 1):

//clicking edit button - redirects and passes row id 11 to view 2
<a href='<?= site_url("admin/admins/update_site/$admin->id") ?>'><img src='<?= base_url('media/admin/images/icons/config.png'); ?>'/></a>

(查看 2):

// view 2 opens where I can edit the row fields 
//url is now: www.site.com/admin/admins/update_site/11:

<form action="<?= site_url('admin/admins/update'); ?>" method="POST">
    Username: <br>
    <input type='text' name='username'/><br>
    Password: <br>
    <input type='password' name='password' /><br>
    <input type='submit' name='submit' value='Save' />
</form>

控制器:

//making an array with updated data and send it to the model
public function update(){
   $update = array(
        'username' => $this->input->post('username'),
        'password' => $this->input->post('password')
   );

  $this->load->model('admin/admins_model');
  $this->admins_model->update_admin($update);
  redirect(site_url('admin/admins/read'));
}

型号:

//update row 11 (from uri segment) the with the array data from controller 
public function update_admin($update){
    $this->db->where('id', $this->uri->segment(4));
    $this->db->update('admins', $update);
}

解决方法 1:

我建议你要添加隐藏的表单字段中你的 id,这里的问题是您的窗体操作没有第 4 段。

视图 2:

<form action="<?= site_url('admin/admins/update'); ?>" method="POST">
    Username: <br>
    <input type='text' name='username'/><br>
    Password: <br>
    <input type='password' name='password' /><br>
    <input type='hidden' name='id' value="<?php $this->uri->segment(4) ?>"/>
    <input type='submit' name='submit' value='Save' />
</form>

型号:

//update row 11 (from uri segment) the with the array data from controller 
public function update_admin($update){
    $this->db->where('id', $this->input->post('id'));
    $this->db->update('admins', $update);
}
赞助商