2015-09-04 100 views
0

对于CI系统,我有一个经销商表和用户表。每个用户通过名为KEY的字段映射到其经销商,这是唯一的字符串。它在用户表和经销商的表中,每个用户(记录)都有映射到它的经销商密钥。我希望你能理解这个概念。现在我想为管理员创建一个视图。目前我列出了reseller和用户列表,现在如何创建一个视图,当我点击reseller时,我只能看到他的经销商?如何在CodeIgniter中执行JOIN操作并获取结果?

在这里,我取的index功能如何将所有的经销商过滤器的基础上重点

public function index() 
     { 
      $usertype=$this->session->userdata('usertype'); 
      if($usertype ==="admin") 
       { 
        // Fetch all users 
        $this->data['users'] = $this->reseller_m->get(); 
        // Load view 
        $this->data['subview'] = 'admin/reseller/index'; 
        $this->load->view('admin/_layout_main', $this->data); 
       } 
      else 
       { 
        $this->load->view('permission'); 
       } 
     } 
+0

你有没有搜索到吗?结帐ci [活动记录连接表](https://ellislab.com/codeigniter/user-guide/database/active_record.html) – Gowri

+0

是的,我做了,但不知道如何在我的方案中使用@Gowri – Rajan

回答

2

您可以使用CI active records这样

$this->db->select('*'); 
$this->db->from('reseller'); 
$this->db->join('users', 'reseller.KEY = users.KEY'); 
$this->db->WHERE('reseller.key',$reseller_id); 
$result = $this->db->get(); 

结果输入只需切换到视图。在第一页传递所有用户结果的结果,所以如果用户点击特定的经销商,那么基本上你必须将经销商ID传递给控制器​​,对吧?使用该id只是通过if else条件将查询结果切换到视图。

public function index() 
     { 
      $usertype=$this->session->userdata('usertype'); 
      $reseller_id=$this->input->get('reseller_id'); 
      if($usertype ==="admin") 
       { 

       if($reseller_id){ 

        // Fetch only resellers users 

        $this->db->select('*'); 
        $this->db->from('reseller'); 
        $this->db->join('users', 'reseller.KEY = users.KEY'); 
        $this->db->WHERE('reseller.key',$reseller_id); 
        $this->data['users'] = = $this->db->get(); 

        }else{ 
        // Fetch all users 
        $this->data['users'] = $this->reseller_m->get(); 

       } 
        // Load view 
        $this->data['subview'] = 'admin/reseller/index'; 
        $this->load->view('admin/_layout_main', $this->data); 
       } 
      else 
       { 
        $this->load->view('permission'); 
       } 
     } 
+0

感谢的人,我发现这个逻辑让我检查 – Rajan

+0

我如何显示他们在我的视图文件 – Rajan

+0

我的意思是,如果点击经销商如何加载只有该用户查看 – Rajan

1

这个是什么?

// Fetch all users 
$this->data['users'] = $this->get('users'); 
foreach($this->data['users'] as $ind=>$row){ 
    // then connect resellers to each user 
    $this->data['users'][$ind]['resellers'] = $this->reseller_m->->where('key', $row['id'])->get(); 
} 

首先让所有用户访问阵列并连接到他的代理商。我希望你已经将“reseller_m”定义为模型,并且使用方法where()我现在只指定用户的销售商。

或者此行也将这样做,我认为:(无定义的模型)

$this->data['users'][$ind]['resellers'] = $this->where('key', $row['id'])->get('resellers'); 
+0

我感谢您的帮助但可以请你解释一下代码 – Rajan

+0

我编辑帖子... – Melounek

相关问题