如何在codeigniter中单独获取每个管理员创建的用户?

时间:2015-08-11 13:48:41

标签: php mysql codeigniter session

我有一个Codeigniter系统,其中Admin创建了经销商。因此,存储在名称,国家/地区,电话,电子邮件,密钥, user_number 等转销商表格值中。无论 user_number 中的值是什么,在users表中创建了很多空白行。因此,经销商密钥将映射到该用户行。如果经销商要求10个用户,则在映射到其密钥的用户表中创建10个空白行。

现在一旦创建了经销商,他就可以登录并编辑他的用户,即(他可以填写用户详细信息)

现在我的问题是我只想获取映射到当前登录的经销商的用户而不是表中的所有用户。我不知道如何做到这一点,请帮助:

下面是我的代码,我获取经销商的所有用户:

控制器:

public function index ()
{
    // Fetch all users


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

    $data['users'] = $this->user_m->get_users($id);


    // Load view
    $this->data['subview'] = 'reseller/user/index';
    $this->load->view('reseller/_layout_main', $this->data);


}

模型功能:

public function get_users(){

    $query = $this->db->get_where('users', array('key' => $id));   

    if($query -> num_rows() > 1)
    {
    return $query->result();
    }
    else
    {
   return false;
    }


   }

我试图获取用户但却遇到了错误!请帮我代码。我只需要通过经销商的密钥显示用户映射。因此,经销商应该只看到自己的用户而不是其他用户!

3 个答案:

答案 0 :(得分:1)

您需要在模型函数中传递$id参数

public function get_users($id){

答案 1 :(得分:0)

您可以在db中设置一个标志,以便知道代理商已登录 logged_in 1,当用户注销时,只需将logged_in设为0。

当您获取转销商时,只需使用条件数组('key'=> $ id,'logged_in'=> 1)。

希望这会有所帮助。

答案 2 :(得分:0)

最后我用会话得到了答案:)

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

    $this->db->where("key",$this->session->userdata('id'));     
    $this->data['users'] = $this->user_m->get();