【发布时间】:2019-10-08 12:22:02
【问题描述】:
我目前遇到一个问题,我有一个名为“Privilege”的枚举,其中 0 = 正常,1 = 特权。这些被分配给工作,例如worker 有正常权限,但是 CEO 有 admin 权限。我遇到的一个问题是用户可能有两个工作,一个是普通特权,另一个是管理员特权。我写了一个查询,以便根据权限启动会话,但是当我使用按 StaffID 分组时,我不确定如何按最高权限分组(1 是这种情况)。
例如
else if ($pwdCheck == True){
session_start();
$query = mysqli_query($conn, 'SELECT staff.StaffID, role.Privilege FROM jobs
INNER JOIN staff ON staff.StaffID = jobs.StaffID
INNER JOIN role ON role.RoleID = jobs.RoleID GROUP BY StaffID
');
$gettier = mysqli_fetch_assoc($query);
if($gettier["Privilege"] === 'normal'){
$_SESSION['userID'] = $row['LoginID'];
header("Location: staffindex.php?login=USERsuccess");
}
elseif($gettier["Privilege"] === 'privileged'){
$_SESSION['AdminID'] = $row['LoginID'];
header("Location: staffindex.php?login=ADMINsuccess");
}
exit();
}
这是在所有情况下,当我输入一个特权人员时,我仍然会被 USERsuccess 标头重定向。我假设我需要使用聚合字符串函数(经过一些研究),但我真的不明白如何应用它。
请查看图片以查看实际查询:
分组:https://imgur.com/ADT0aHF
无分组:https://imgur.com/UDeyKe5
感谢任何帮助。
【问题讨论】:
-
你必须在选择中写
sum(role.Privilege)
标签: php mysql sql session aggregate