Javascript 如何获取mysql中前两行的值,并将其和会话用户变量的值进行比较?

Javascript 如何获取mysql中前两行的值,并将其和会话用户变量的值进行比较?,javascript,php,mysql,Javascript,Php,Mysql,我想在我的项目中指定两名员工id最少的员工作为管理员。如何从mysql中获取员工id最少的2行,并将其与当前会话用户进行比较 例如: EMP_ID | EMP_名称 1 | Mike 2 | Peter 3 | Drake 4 | Oliver 5 | Andrew 假设我的当前用户是Oliver EMP_ID-4,我如何限制管理员页面从其选项卡打开,并直接从Mike和Peter之外的用户的url访问?如果管理员页面是由Peter E

我想在我的项目中指定两名员工id最少的员工作为管理员。如何从mysql中获取员工id最少的2行,并将其与当前会话用户进行比较

例如:

EMP_ID | EMP_名称

  1    |  Mike
  2    |  Peter
  3    |  Drake
  4    |  Oliver
  5    |  Andrew

假设我的当前用户是Oliver EMP_ID-4,我如何限制管理员页面从其选项卡打开,并直接从Mike和Peter之外的用户的url访问?如果管理员页面是由Peter EMP_ID-2或Mike EMP_ID-1打开的,那么它应该从管理员选项卡打开,并直接访问url。请帮忙

对于这个确切的示例,sql应该是:

 $bHasAdminAccess = db::getValue("SELECT count(*) FROM _USER_TABLE_ WHERE userid = ".$userIdLoggedIn." AND userid IN (SELECT userid FROM _USER_TABLE_ LIMIT 2)");
$bHasAdminAccess = db::getValue("SELECT count(*) FROM _USER_TABLE_ WHERE userid = ".$userIdLoggedIn." AND is_admin = 1");
问题应该是,为什么是前两个?你不能简单地说低于2吗

$bHasAdminAccess = db::getValue("SELECT count(*) FROM _USER_TABLE_ WHERE userid = ".$userIdLoggedIn." AND userid <= 2");
而代码是:

 $bHasAdminAccess = db::getValue("SELECT count(*) FROM _USER_TABLE_ WHERE userid = ".$userIdLoggedIn." AND userid IN (SELECT userid FROM _USER_TABLE_ LIMIT 2)");
$bHasAdminAccess = db::getValue("SELECT count(*) FROM _USER_TABLE_ WHERE userid = ".$userIdLoggedIn." AND is_admin = 1");

要获得前两名员工,您可以在查询中使用ORDERBY子句,如下所示:

按EMP\U ID ASC LIMIT 2从员工表订单中选择*

现在,您可以将会话用户与EMP_ID进行匹配,该ID将作为查询后结果的一部分

1一旦用户注册,前两个用户将是,例如superadmin1和admin2 rest都将是普通用户

2现在,当用户登录时,您需要将这些用户数据与emp_id一起保存到会话中

3现在,授权,意味着哪个用户将有权访问哪个页面,您将触发如下查询:

select emp_id from employee order by emp_id asc limit 2.
此查询将只提供那些顶级用户的ID,这些用户在顶级注册,不考虑1、2或任何数字

4检查您在会话中存储的当前用户的emp_id是否存在于您上面编写的查询中的前两个用户的emp_id中

如果存在

然后访问所有页面

否则

显示一条警告消息,表明您未经授权,或仅重定向到您的主页(如果有)


我敢肯定,如果您遵循这些步骤,您现在已经完成了所有工作。

您尝试了什么?它通过检查用户是否属于1 | 2来进行直接查询。从emp_id在1,2中的员工中选择id。。。。如果用户不属于此,则不允许else allow。谢谢Rahul,但此表只是一个示例。员工id可以是4位数、5位数或6位数。我想在用户注册时自动分配我的管理员。无论前两名员工是什么,他们都是管理员。因为员工id会有所不同。所以我的意思是,你是说,前两个注册用户将是管理员,是吗?然后你想检查前两个用户是否进行身份验证?@rahul\u m:是的,没错。不是,我不能说它小于2,因为员工ID也可以是4位数字或5位数字等等。我演示的表只是一个示例。嘿,我刚刚为您的示例修复了它,现在我得到前两个ID,然后检查它。@Arpit_K$bHasAdminAccess=db::getValueSELECT count*FROM _USER_table_u其中userid=。$userIdLoggedIn。和userid在SELECT userid FROM_USER_TABLE_u2;LIMIT 2tanks中为您的响应选择userid。但我不知道如何将它与会话用户进行比较。因为查询结果是两行,所以如何获取两个员工id并将其与会话用户进行比较。您可以从查询中获得一个结果循环。如果任何id匹配,你可以重定向到管理页面,否则你可以限制它。你是最受欢迎的伙伴!