我想创建一个管理组,可以通过这个级别表访问数据,
低层看不到高层的数据。
0=>3
高=>低
用户表:
---------------------
uid gid uname
---------------------
110 4 Jacky =>means {gname: art_admin ,level: 2}
111 1 Niky =>means {gname: site_admin ,level: 0}
112 4 Cupe =>means {gname: art_admin ,level: 2}
113 2 Nancy =>means {gname: gen_admin ,level: 1}
113 5 Joe =>means {gname: admin ,level: 3}
组表:
---------------------
gid gname level
---------------------
1 site_admin 0
2 gen_admin 1
3 sys_admin 1
4 art_admin 2
5 admin 3
这意味着杰基属于“艺术管理”,他的级别是“2”。
所以当他查看all-user表时,它只显示低于2的级别。
杰克看到了:,
尼基越高,所以他可以看到所有的用户:,
乔在下面,所以她只能看到自己:
然后,我该如何查询呢?谢谢。
伪码
$uid = 110 ;// Assume I'm Jacky
$result = mysql_query("
SELECT
user.uname from user
WHERE
[ group.level >= Jacky's level ]
";);
while($row = mysql_fetch_array($result)){
echo $row['uname']." , ";
}
它应该会回来
Jacky , Cupe , Joe
最佳答案
这是您要查找的查询吗?
select u.uname
from user u join
groups g
on u.gid = g.gid
where g.level >= (select g2.level
from user u2 join
groups g2
on u2.gid = g2.gid
where u2.uname = 'Jacky'
);
关于php - 查询和列出管理员级别-联接两个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25789273/