2015-08-21 3 views
1

в моем приложении Я хочу фильтровать данные в соответствии с пользователем (не для пользовательского уровня). Например, у меня есть пользователь, и когда они заходят в систему, я хочу просмотреть их собственные данные. Как я могу это сделать, используя codeigniter.i также создал сеанс в контроллере входа. и грейдер. теперь я хочу фильтровать данные с другого контроллера. Возможно ли это?Фильтровать значения базы данных в соответствии с пользователем входа

здесь мой код для сессии Вход контроллера

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(); 
} 

, когда я использовал выше кода для фильтрации данных, он показывает

ошибка Неопределенная переменная: идентификатор

это мой код для просмотра.

<?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); } 

пожалуйста, помогите мне

любой из есть идея плз помочь мне

ответ

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

когда я использую свой код он показывает ошибки называется «Недействительный аргумент для Еогеасп()» и предыдущая ошибка была исправлена ​​ и, пожалуйста, ЛФВЭ меня чтобы зафиксировал его ID ; echo '   ';?> title; эхо «   »;> ashik

+0

Это означает 'Неопределенная переменная: id' проблема решена – Saty

+0

Вы должны башмак нас, где вы называете' get_book' функции от контроллера и где? использовать для цикла 'foreach' – Saty

Смежные вопросы