使用codeigniter从数据库更新特定用户

时间:2016-01-13 06:54:09

标签: php codeigniter

我刚创建了一个用户个人资料页面。在我的user_model上,我编写了这个,但我不知道如何设置我的控制器。我只是一个新手:D有人可以帮忙吗? :)提前谢谢

public function get_user(){
   $q = $this->db->query("SELECT * FROM tbl_users");
    return $q->result();
}
public function get_user_byid($u_id) {
    $q = $this->db->query("SELECT * FROM tbl_users WHERE u_id = '$u_id'");
    return $q->result();
}    
function update_user($u_id, $data) {
    $this->db->where('u_id', $u_id);
    $this->db->update('tbl_userss', $data);
    return $this->db->insert_id();
}

在我的控制器中

      <?php
           if (!defined('BASEPATH')) {
                exit('No direct script access allowed');
                  }

    class Profile_controller extends CI_Controller{

         public function __construct() {
            parent::__construct();
            $this->load->model('user_model');
            $this->load->library('session');
        }

        public function index(){
            $data['title'] = 'My Profile';
            $data['content'] = 'profile';
            $this->load->view('layout/admin_layout', $data);
        }

         public function update_user_data(){
           $data = array(
               'username'=>$this->input->post('username'),
               'email'=>$this->input->post('email'),
               'password'=>md5($this->input->post('email')),
               'fname'=>$this->input->post('fname'),
               'mname'=>$this->input->post('mname'),
               'lname'=>$this->input->post('lname'),
               'contact_no'=>$this->input->post('contact_no'),
              'address'=>$this->input->post('address')
           );
           $this->user_model->update_user($data);
        }
    }  

3 个答案:

答案 0 :(得分:1)

使用此

function update_user($u_id, $data) {
    $this->db->where('u_id', $u_id);
    $this->db->update('tbl_userss', $data);
    return $this->db->affected_rows() == 1 ? $u_id : 0;
}

编辑:

URL:

POST http://www.example.com/mycontroller/update_user_data/5

控制器

public function update_user_data($u_id){
$data = array(
    'username'=>$this->input->post('username'),
    'email'=>$this->input->post('email'),
    'password'=>md5($this->input->post('email')),
    'fname'=>$this->input->post('fname'),
    'mname'=>$this->input->post('mname'),
    'lname'=>$this->input->post('lname'),
    'contact_no'=>$this->input->post('contact_no'),
    'address'=>$this->input->post('address')
);

$this->user_model->update_user($u_id, $data);

}

答案 1 :(得分:0)

$ data应该是一个包含用户表'tbl_users'的值的数组,比如

$ data ['name'] ='用户名'; $ data ['age'] = '22';等..等等。

这里的术语name, age是表'tbl_users'

的字段

答案 2 :(得分:0)

您只在此处发送一个参数:$this->user_model->update_user($data); 在您的模型中,您将收到两个参数:function update_user($u_id, $data){...}

在将$u_id传递给模特时,你从未提及过public function your_action(Request $request)//inject request to access per_page query param { $perPage = $request->query('per_page', 10); $items = YourModel::paginate($perPage)->appends([ 'per_page' => $perPage ]); return view('your_view', compact('items', 'perPage')); }