2015-08-21 102 views
1

在我的應用程序中,我想根據用戶篩選數據(而不是用戶級別)。例如,我有一個用戶,當他們登錄到系統時,我想查看他們的自己的data.how我可以做到這一點,使用codeigniter.i也創建了登錄控制器中的會話。和hesder。現在我想過濾來自另一個控制器的數據。有可能嗎?根據登錄用戶篩選數據庫值

這裏我在登錄控制器會話代碼

public function user_login_process() { 

$this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean'); 
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean'); 

if ($this->form_validation->run() == FALSE) { 
if(isset($this->session->userdata['logged_in'])){ 
//$this->load->view('admin_page'); 
    $this->home(); 
}else{ 
$this->load->view('user_site/login_form'); 
} 
} else { 
$data = array(
'email' => $this->input->post('email'), 
'password' => $this->input->post('password') 
); 
$result = $this->login_database->login($data); 
if ($result == TRUE) { 

$email = $this->input->post('email'); 
$result = $this->login_database->read_user_information($email); 
if ($result != false) { 
$session_data = array(
'firstname' => $result[0]->firstname, 
'email' => $result[0]->email, 
    'id' => $result[0]->id, 
); 
// Add user data in session 
$this->session->set_userdata('logged_in', $session_data); 
//$this->load->view('index'); 
//     $this->home(); 
        $this->load->view("user_include/header"); 
        $this->load->view('user_site/index'); 
} 
} else { 
$data = array(
'error_message' => 'Invalid Username or Password' 
); 
$this->load->view('user_site/login_form', $data); 
} 
} 
} 

這是頭

<?php 
if (isset($this->session->userdata['logged_in'])) { 
$firstname = ($this->session->userdata['logged_in']['firstname']); 
$email = ($this->session->userdata['logged_in']['email']); 
$id = ($this->session->userdata['logged_in']['id']); 
} else { 
header("location: login"); 
} 

現在我想在另一個控制器

function get_book(){ 
    $this->db->select("book.id,book.title"); 
    $this->db->where("user_id = $id"); 
    $this->db->from('book'); 
    $query = $this->db->get(); 
    return $query->result(); 
} 

過濾數據時,我使用的上面的代碼來過濾數據,它顯示了一個

錯誤未定義的變量:ID

這是我的視圖代碼。

<?php foreach($post as $post){?> 
<tr> 

    <td><?php echo $post->id ; echo '&nbsp; &nbsp;';?></td> 
    <td><?php echo $post->title ; echo '&nbsp; &nbsp;';?></td> 
</tr> 
<?php } 

?> 

這是我的控制器

public function index(){ 
$data['post'] = $this->floor_model->get_book(); 
$this->load->view('user_include/header'); 
$this->load->view('plan/floor',$data); } 

請幫我

任何一個有一個想法,plz幫助我在你的會話變量

回答

0

您存儲id。爲了得到這個使用

$id = $this->session->userdata['logged_in']['id']; 

型號

function get_book(){ 
    $id = $this->session->userdata['logged_in']['id'];// getting id 
    $this->db->select('id,title'); 
    $this->db->where('user_id', $id);// 
    $this->db->from('book'); 
    $query = $this->db->get(); 
    return $query->result(); 
} 
+0

當我使用你的代碼,它顯示了一個名爲錯誤 「()提供的foreach無效參數」 和以前的錯誤是固定的 並請HEPL我修復它 <?php foreach($ post as $ post){?> ​​<?php echo $ post-> id; echo'   ';?> ​​<?php echo $ post-> title;回聲 '   ';> ashik

+0

這意味着'未定義的變量:?id'問題解決 – Saty

+0

你必須鞋我們你叫'從控制器和地方get_book'功能?用於'foreach'循環 – Saty