简体   繁体   中英

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.

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,

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) )

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()); into this function after $this->db->update('profile_details', $data); ; then copy it and paste into Query Form in your phpmyadmin.

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. Correct that 'nae' to 'name'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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