简体   繁体   English

用户使用codeigniter登录后无法将配置文件数据更新到数据库中

[英]Unable to update profile data into database after user login using codeigniter

Once user login into the website it will fetch the details of the login users based on profile ids.If i try to update the details of the user unable to update as well as not getting any issues. 一旦用户登录网站,它将根据配置文件ID获取登录用户的详细信息。如果我尝试更新用户无法更新的详细信息以及没有任何问题。

Controller: 控制器:

function index()
{
    if($this->session->userdata('admin_logged_in'))
    {
        $data['admin_details'] = $this->session->userdata('admin_logged_in');
        $data['country'] = $this->signup_model->getcountry();       
        $data['states'] = $this->profile_model->getstates();
        $data['records']= $this->profile_model->getprofiledata($this->session->userdata('admin_logged_in')['profile_id']);
        $data['mainpage']='profile';
        //echo '<pre>'.print_r($data, true).'</pre>';
        $this->load->view('templates/template',$data);
        $this->load->view('templates/sidebar',$data);
    }
    else
    {           
        $this->load->view('welcome');
    }
}

function updateprofile()
{
    $this->load->library('form_validation');
    $this->form_validation->set_error_delimiters('<br /><span class="error"> ','</span>');
    $this->form_validation->set_rules('first_name','First Name','required');
    $this->form_validation->set_rules('profile_name','Profile Name','required');
    $this->form_validation->set_rules('designation','Designation','required');
    $this->form_validation->set_rules('address_1','Address','required');
    $this->form_validation->set_rules('address_2','Address','required');

    if($this->form_validation->run()== FALSE)   
    {   
    $data['records']= $this->profile_model->getprofiledata($this->session->userdata('admin_logged_in')['profile_id']);      
    $data['mainpage']='profile';
    $this->load->view('templates/template',$data);
    $this->load->view('templates/sidebar',$data);
    }
    else    
        {       
            $result = $this->profile_model->update($this->input->post('profile_id'));       
            if(is_array($result))
            {       
                $data['errors']=$result;
                $data['records']= $this->profile_model->getprofiledata($this->session->userdata('admin_logged_in')['profile_id']);                 
                $data['mainpage']='profile';
                $this->load->view('templates/template',$data);
                $this->load->view('templates/sidebar',$data);
            }                              
                else                    
                $this->flash->success('<h2>Successfully Updated the record.<h2>');                      
                redirect('profile');                    
        }               

}

Model: 模型:

function getprofiledata($id)
{
    $this->db->select('profile_details.*,C.country_name,S.state_name,D.city_name');     
    $this->db->from('profile_details');
    $this->db->join('countries AS C','C.country_id=profile_details.country_id','INNER');
    $this->db->join('states AS S','S.state_id=profile_details.state_id','INNER');
    $this->db->join('cities AS D','D.city_id=profile_details.city_id','INNER');
    $this->db->where(array('profile_details.profile_id'=>$id));     
    $q=$this->db->get();        
    if($q->num_rows()>0)
      {
    return $q->result();
        }
    else
    {
    return false;
    }
}

function update($id)
{
    $data=array(
    'first_name' =>$this->input->post('first_name'),
    'profile_name' =>$this->input->post('profile_name'),
    'designation' =>$this->input->post('designation'),
    'address_1' =>$this->input->post('address_1'),
    'address_2' =>$this->input->post('address_2')       
    );
    $this->db->where(array('profile_id'=>$id));
    $this->db->update('profile_details', $data);
    return true;        
}

View: 视图:

<div class="col-md-3">
</div>
<div class="col-md-9 col-md-offset-2">
<div id="legend">
    <legend class="">Profile Information</legend>
</div>   
<?php if(isset($records) && is_array($records) && count($records)>0): ?>
            <?php foreach($records as $r):?>
    <form action="<?php echo base_url();?>profile/updateprofile" role="form" class="form-horizontal" id="location" method="post" accept-charset="utf-8">
    <?php
        echo form_hidden('profile_id',$r->profile_id);
    ?>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="name">Name:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" nae="first_name" id="first_name" placeholder="Enter name" value="<?php echo $r->first_name;?>" />
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="profilename">Profile Name:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" name="profile_name" id="profile_name" placeholder="Enter Profile name" value="<?php echo $r->profile_name;?>" />
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="designation">Designation:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" name="designation" id="designation" placeholder="Enter Designation" value="<?php echo $r->designation;?>" />
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="address_1">Address 1:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" id="address_1" name="address_1" placeholder="Enter Address Details" value="<?php echo $r->address_1;?>" />
      </div>
    </div>
    <div class="form-group">
      <label class="control-label col-sm-2 " for="address_2">Address 2:</label>
      <div class="col-sm-4 col-sm-offset-1">
        <input type="text" class="form-control" id="address_2" name="address_2"  placeholder="Enter Address Details" value="<?php echo $r->address_2;?>" />
      </div>
    </div>
     <button type="submit" class="btn">Submit</button>
    </form>
    <?php endforeach;endif;?>
    </div>

Once user login into the website unable to update the data into database.Once submitting the form redirecting to same page not getting any issue as well. 一旦用户登录网站无法将数据更新到数据库中。一旦提交表单重定向到同一页面也没有任何问题。

Dear user7047368, 亲爱的用户7047368,

Maybe problems at your model code. 您的型号代码可能存在问题。

function update($id)
{
    $data=array(
    'first_name' =>$this->input->post('first_name'),
    'profile_name' =>$this->input->post('profile_name'),
    'designation' =>$this->input->post('designation'),
    'address_1' =>$this->input->post('address_1'),
    'address_2' =>$this->input->post('address_2'),

    );
    $this->db->where(array('profile_id'=>$id));
    $this->db->update('profile_details', $data);
    return true;        
}

MUST BE (you type an extra comma in $data(array) ) 必须(你在$data(array)输入一个额外的逗号)

function update($id)
{
    $data=array(
    'first_name' =>$this->input->post('first_name'),
    'profile_name' =>$this->input->post('profile_name'),
    'designation' =>$this->input->post('designation'),
    'address_1' =>$this->input->post('address_1'),
    'address_2' =>$this->input->post('address_2')
    );
    $this->db->where(array('profile_id'=>$id));
    $this->db->update('profile_details', $data);
    return true;        
}

If you not sure your query is true or false, you can put this line var_dump($this->db->last_query()); 如果你不确定你的查询是真还是假,你可以把这行var_dump($this->db->last_query()); into this function after $this->db->update('profile_details', $data); $this->db->update('profile_details', $data);后进入此函数$this->db->update('profile_details', $data); ; ; then copy it and paste into Query Form in your phpmyadmin. 然后将其复制并粘贴到phpmyadmin中的Query Form中。

Hope this help. 希望这有帮助。

Problem is in your view 您认为问题在于此

Use this 用这个

<div class="form-group">
  <label class="control-label col-sm-2 " for="name">Name:</label>
  <div class="col-sm-4 col-sm-offset-1">
    <input type="text" class="form-control" name="first_name" id="first_name" placeholder="Enter name" value="<?php echo $r->first_name;?>" />
  </div>
</div>

instead of 代替

<div class="form-group">
  <label class="control-label col-sm-2 " for="name">Name:</label>
  <div class="col-sm-4 col-sm-offset-1">
    <input type="text" class="form-control" nae="first_name" id="first_name" placeholder="Enter name" value="<?php echo $r->first_name;?>" />
  </div>
</div>

In your first name input field 'name' attribute has spell mistake. 在您的名字输入字段'name'属性有拼写错误。 Correct that 'nae' to 'name' 纠正'nae'到'name'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM