我想创建一个管理组,可以通过这个级别表访问数据,
低层看不到高层的数据。
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/

10-16 23:36