通过id更新codeigniter中的DB行

时间:2014-05-25 16:08:23

标签: php codeigniter

我尝试使用ID更新数据库中的行。我意识到你可以通过URI SEGMENT来实现它但是还有另一种方式作为变量$ GET。由于某种原因,它无法更新。

另一个问题,为什么当我执行URI SEGMENT时,如果它不起作用?示例代码:if($ this-> uri-> segment(3))=== false)...

由于某种原因,条件不起作用。谢谢助理。

模特:

public function updata_user($data) {

 $this->db->where('id', $this->uri->segment(3));
    $this->db->update('users', $data);



}

}

控制器:

public function save() {



    $data = array(
            'name' => $this->input->post('name'),
            'email' => $this->input->post('email'),
            'password' => $this->hash($this->input->post('password'),TRUE)


    );

    if ($this->uri->segment(3) === false) {

        $this->users_model->insert_user($data);
        redirect('users/index');


    }


    else {


        $result = $this->users_model->updata_user($data);

        if ($result) {


            redirect('users/index');


        }


    }



}

观点:

    <?php echo validation_errors(); ?>
<?php echo form_open('users/save'); ?>
<table class="table">
<tr>
    <td>Name</td>
    <td><?php echo form_input('name', set_value('name', $user->name)); ?></td>
</tr>
<tr>
    <td>Email</td>
    <td><?php echo form_input('email', set_value('email', $user->email)); ?></td>
</tr>
    <tr>
    <td>Email</td>
    <td><?php echo form_input('id', set_value('id', $user->id)); ?></td>
</tr>
<tr>
    <td>Password</td>
    <td><?php echo form_password('password'); ?></td>
</tr>
<tr>
    <td>Confirm password</td>
    <td><?php echo form_password('password_confirm'); ?></td>
</tr>
<tr>


    <td></td>
    <td><?php echo form_submit('submit', 'Save', 'class="btn btn-primary"'); ?></td>
</tr>
</table>
<?php echo form_close();?>

1 个答案:

答案 0 :(得分:1)

你可以将id放入隐藏输入中并使用$ this-&gt; input-&gt; post('id')你可以在模型中使用它

查看

<tr>
<td>id</td>
<td><?php echo form_hidden('id',$user->id); ?></td>
</tr>

模型

    public function updata_user($data) 
    {
    $this->db->where('id', $this->input->post('id'));
    $this->db->update('users', $data);

    }