我正在使用 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();
}
我想我需要连接两个表,然后使用公共(public)键值进行搜索?
谢谢
最佳答案
如果我理解正确的话,你就错过了 select 语句。 这会对你有帮助
<?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;
}
}
?>
关于php - 从sql表中查询数据,其中引用在另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40759967/