如何防止在成员列表中显示登录用户?

时间:2017-11-20 20:26:04

标签: php mysql codeigniter

我有管理员列表和会员列表,我按照' a'分类。并且' m'。现在我在不同的标签中显示管理员列表和成员列表。现在的问题是,如果用户在成员列表中并且已登录,则其名称不应显示在成员列表中。

这是控制器:

public function view_customer(){
 $data = json_decode(file_get_contents('php://input'));

    $customers=$this->um->view_customers();
     header("Content-Type: application/json; charset=UTF-8");
     echo json_encode($customers);
}

以下是模型:

    public function view_customers(){
    $this->db->select('reg_id,reg_name,email,user_type,pic_url,id,name,cover_image,restaurant_id');
    $this->db->from('registration');
    $this->db->where('user_type','m');
$this->db->join('rest_restaurant_master','registration.restaurant_id=rest_restaurant_master.id','inner');
    $query=$this->db->get()->result_array();
    return $query;
}

2 个答案:

答案 0 :(得分:2)

基本上,您需要一个包含在表中的变量,并且该变量与用户相关。我假设您有一个名为id的名为user_id的会话变量。

添加到view_customers

$this->db->where_not_in('id', $this->session->user_id);

或(更容易):

$this->db->where('id !=', $this->session->user_id);

这样,您的阵列将包含仅位于m且不是有效用户的用户。

答案 1 :(得分:0)

设置会话(登录时)

$newdata = array(
    'id'        => 3, # id is database user recorded id
    'username'  => 'johndoe',
    'email'     => 'johndoe@some-site.com',
    'logged_in' => TRUE
);

$this->session->set_userdata($newdata);

然后在你可以调用的所有方法中

$loggedUser = $this->session->id; # or $this->session->userdata('id');

$this->db->where_not_in('id', $loggedUser);

Read this Session Library class