有没有一种方法可以根据用户帐户来唯一地查看数据? Codeigniter PHP

时间:2020-09-05 13:06:09

标签: php codeigniter codeigniter-3

我有两个标签,我正在尝试创建房间预订,因此当user1登录并选择房间时,他将被引导到第一个标签上,然后他/她可以请求房间然后,在成功请求房间后,它将进入第二个选项卡进行查看。我已经成功做到了。

问题是:当我更改任何用户帐户时,选项卡1中显示的可用数据就会像user1一样被放置在选项卡2中。怎么了user2尚未请求任何房间时。因此,所有房间都应该在他/她的末端可用。

查看

第一个标签

<?php foreach($dorms as $dorm): ?>

<a class="text-decoration-none">
  <div class="col-md-6 mt-4" style="margin-left: 6rem;padding-bottom: 1rem;">
    <div class="card top-shadow" style="width: 12rem; text-align:center;display:inline-block;">
      <div class="card-body">
       
             // TAB 1 DATA
      </div>
    </div>
  </div>
</a>

<?php endforeach; ?>

第二个标签

<?php foreach($dormreservedas $dormres): ?>

<a class="text-decoration-none">
  <div class="col-md-6 mt-4" style="margin-left: 6rem;padding-bottom: 1rem;">
    <div class="card top-shadow" style="width: 12rem; text-align:center;display:inline-block;">
      <div class="card-body">
       
             // TAB 2 DATA
      </div>
    </div>
  </div>
</a>

<?php endforeach; ?>

控制器

public function home()
{
    // Check login
    if(!$this->session->userdata('student_logged_in')){
        redirect('students/login');
    }

    $data['title'] = 'Home';
    
    $data['dorms'] = $this->dorm_model->get_dorms();
    $data['dormreserved'] = $this->dorm_model->get_reserves();

    $this->load->view('templates/header', $data);
    $this->load->view('students/pages/home', $data);
    $this->load->view('templates/footer');

}

型号

在第一个选项卡上,这是我将请求的数据分离到第二个选项卡上的方式

public function get_dorms(){
    $this->db->where('id NOT IN(select dorm_id from reserves)');
    $this->db->order_by('id', 'DESC');
    $query = $this->db->get('dorms');
    return $query->result_array();
}

第二个标签页模型

public function get_reserves(){
    $this->db->join('reserves', 'reserves.dorm_id = dorms.id');
    $this->db->where('reserves.tenant_id', $this->session->userdata('student_user_id'));
    $query = $this->db->get('dorms');
    return $query->result_array();
}

1 个答案:

答案 0 :(得分:0)

我希望它对您有用。

public function get_dorms(){
    $this->db->where('id NOT IN(select dorm_id from reserves WHERE tenant_id = '".$this->session->userdata('student_user_id')."')');
    $this->db->order_by('id', 'DESC');
    $query = $this->db->get('dorms');
    return $query->result_array();
}