我正在使用CodeIgniter并尝试从mysql查询数据。
场景 - 登录用户是经理,想要为他的团队提取数据..
说明 -
e_users表
|user_id | name | manager_id
---------------------------------
|1 | test | 10
|2 | another | 1
|3 | testX | 1
|4 | testY | 2
|5 | testX | 2
e_details表
|det_id | detail | user_id
---------------------------------
|1 | sdfs | 1
|2 | xcffgdf | 2
|3 | sdfsd | 3
|4 | etret | 5
|5 | cvbcvb | 5
现在当user_id 1被记录为管理员时,他应该只获取det_id -2,3的数据,
e_details 表中包含数据,我只想查询其管理员当前登录的用户数据。意味着经理将从 e_details 表中提取用户数据。
e_details 表包含user_id,detail_comment,details_date ......
和 e_users 拥有user_id,manager_id,...
我尝试了下面的功能,但我无法获得所需的数据
$user_id = $this->session->userdata('user_id')
public function get_method($user_id)
{
$this->db->join('e_users', 'e_users.manager_id = e_details.user_id','INNER');
$this->db->where('e_details.user_id',$user_id);
return $this->db->get('e_details')->result_array();
}
我想我需要加入两个表然后使用公共密钥值进行搜索?
谢谢,
答案 0 :(得分:2)
好吧如果我说得对,你错过了选择陈述。 这会对你有所帮助
<?php
public function get_method($user_id){
$query = $this->db->select('e_users.*, e_details.*')
->from('e_users')
->join('e_details', 'e_users.user_id = e_details.user_id', 'inner')
->where('e_users.manager_id',$user_id)
->get();
if($query -> num_rows() > 0){
$details_array = $query->result();
print_r($details_array);die;
$response['details_array'] = $details_array;
return $response;
}else{
return false;
}
}
?>