簡體   English   中英

無法從Codeigniter PHP中的數據庫中獲取數據

[英]Unable to fetch data from database in codeigniter php

如果用戶登錄站點后無法從數據庫中獲取數據(如果我寫foreach條件,則該頁面為空白頁),這就是我的代碼。

控制器:

public function index()
{
if($this->session->userdata('admin_logged_in')){
$data['admin_details'] = $this->session->userdata('admin_logged_in');
$data['records']= $this->profile_model->getprofiledata($this->uri->segment(3));
$data['mainpage']='profile';
$this->load->view('templates/template',$data);
}
else{

    $this->load->view('welcome');
}
}

模型:

function getprofiledata($id)
{
    $this->db->select('profile_details.*');     
    $this->db->from('profile_details');     
    $this->db->where(array('profile_details.profile_id'=>$id));     
    $q=$this->db->get();        
    if($q->num_rows()>0)
      {
    return $q->result();
        }
    else
    {
    return false;
    }
}

視圖:

<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" id="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" id="profile_name" placeholder="Enter 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" id="designation" placeholder="Enter Designation">
      </div>
    </div>
    <button type="submit" class="btn">Submit</button>
    </form>
    <?php endforeach;endif;?>

您在$data['records']= $this->profile_model->getprofiledata($this->uri->segment(3));行上選擇了錯誤的段號$data['records']= $this->profile_model->getprofiledata($this->uri->segment(3));

請注意,段計數從零開始,因此第3段實際上是uri中的第4個。

如果將用戶ID保留在會話中,則應替換$data['records']= $this->profile_model->getprofiledata($this->uri->segment(3)); $records = $this->profile_model->getprofiledata($this->session->userdata('profile_id'))‌​‌​‌​; 這樣就完成了。

當您在登錄模型中像下面這樣的登錄過程時,添加一個新會話:

<?php
public function login_user($user_name = '', $password=''){ 
    $userdetails = array( 
    'email' => $user_name, 
    'password' => md5($password), 
    'status'=>1,     
    ); 

    $this->db->where($userdetails); 
    $query = $this->db->get('profile_details');  

    if($query->num_rows()): 
        $user = $query->result(); 
        $sess_arry = array( 
            'profile_id' => $user[0]->profile_id, // add new session profile_id
            'first_name' => $user[0]->first_name 
        );  
        $this->session->set_userdata('admin_logged_in', $sess_arry);    //add admin details to session   
        return true; 
    else: 
        return false; 
    endif; 
}
?>

還有一些更改您的index方法,例如以下:

<?php
public 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();

        $profile_id = $this->session->userdata('profile_id');
        $records = $this->profile_model->getprofiledata($profile_id)‌​‌​;

        $data['records']= $records; 

        $data['mainpage']='profile'; 
        $this->load->view('templates/template',$data); 
        $this->load->view('templates/sidebar',$data); 
    } 
    else{ 
        $this->load->view('welcome'); 
    } 
} 
?>

我添加了新的3行,因為我認為您在$this->uri->segment(3)中無法正確獲取個人資料ID

所以,

$profile_id = $this->session->userdata('profile_id');
$records = $this->profile_model->getprofiledata($profile_id)‌​‌​; 

$data['records']= $records;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM