2017-01-04 17 views
0

このコードはcodeigniterにありますが、データベースで更新されません。初心者のni codeigniterです。どうすればこのエラーを修正できますか? これは私のコントローラである:codeigniterのセッションを使用してデータを更新する方法

function edit() { 
    $role = $this->session->userdata('role'); 
    $this->form_validation->set_rules('firstname', 'firstname', 'required|xss_clean'); 
    $this->form_validation->set_rules('lastname', 'lastname', 'required|xss_clean'); 
    if ($this->form_validation->run() == FALSE) { 
     //set page data 
     $data['title'] = 'Update Profile'; 
     if($role!=''){ 
     $data['admin'] = $this->M_user->get($this->session->userdata('user_id')); 
     }else{ 
     $data['admin'] = $this->M_administrator->getAdmin($this->session->userdata('id_admin')); 
     } 
     $data['sitename'] = $this->M_website->getName(); 
     $data['content'] = 'admin/myaccount/edit'; 

     //parse template 
     $this->parser->parse('admin/template', $data); 
    } else { 
     if($role!=''){ 
     if ($this->M_user->updateStatus($_POST['user_id'])) { 
      //SAVE ADMIN ACTION LOG 
      //save_admin_action(array('module' => Constant::AM_ACCOUNT, 'action' => Constant::AL_EDIT, 'title' => $this->form_validation['username'], 'object_id' => $id)); 

      //redirect page 
      $this->session->set_flashdata('saved', TRUE); 
      redirect('admin/myaccount'); 
     } 
     }else{   
     if ($this->M_administrator->updateStatus($_POST['id_admin'])) { 
      //SAVE ADMIN ACTION LOG 
      //save_admin_action(array('module' => Constant::AM_ACCOUNT, 'action' => Constant::AL_EDIT, 'title' => $this->form_validation['username'], 'object_id' => $id)); 

      //redirect page 
      $this->session->set_flashdata('saved', TRUE); 
      redirect('admin/myaccount'); 
     } 
     } 
    } 
} 

これは私のモデル管理者です:

function updateStatus($post, $id){ 
    $data = array(
       'firstname' => $post['firstname'], 
       'lastname' => $post['lastname'] 
     ); 
    $this->db->where('id_admin', $id); 
    if($this->db->update('admin', $data)){ 
     return TRUE; 
    }else{ 
     return FALSE; 
    } 
} 

ユーザーモデル:

function updateStatus($post, $id){ 
    $data = array(
       'firstname' => $post['firstname'], 
       'lastname' => $post['lastname'] 
     ); 
    $this->db->where('user_id', $id); 
    if($this->db->update('user', $data)){ 
     return TRUE; 
    }else{ 
     return FALSE; 
    } 
} 
+0

私はあなたの関数に$ this-> M_user-> updateStatus($ _ POST ['user_id']) function updateStatus($ post、$ id)、空白になる部分に2番目のパラメータ、すなわち$ idを使用しています –

+0

$ postだけを宣言しますが、結果は同じです。 – noname

+0

は、 –

答えて

0
は ます$ this-> DB-にあなたのwhere句を変更

>ここで、 ( 'id_admin'、$ post);

+0

$ idを$ post it storeに置き換えると2、それは決して変更されない、 – noname

1

パスファーストネームとラストネーム、あなたのUpdateStatusをモデル関数には、使用してクエリます$ this-> DB-> last_query()

プリントを変更することはできませんので、あなたがモデルにその値を取得していない場合。クエリの出力を取得してここにクエリを投稿する

+0

それは今解決する、ありがとう – noname

関連する問題