У меня сейчас проблема с перечислением с именем «Привилегия», где 0 = обычный, а 1 = привилегированный.Они назначаются на рабочие места, например, у работника есть обычные привилегии, но у генерального директора есть права администратора.Проблема, с которой я столкнулся, заключается в том, что у пользователя может быть два задания, одно из которых с правами обычного пользователя, а другое с правами администратора.Я написал запрос, чтобы начать сеансы в зависимости от привилегии, однако, когда я использую группирование по 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.Я предполагаю, что мне нужно будет использовать функцию агрегирования строк (после некоторого исследования), но я не совсем понимаю, как ее применить.
Пожалуйста, просмотрите изображение, чтобы увидеть запрос в действии:
С Group By: https://imgur.com/ADT0aHF
Без группировки по: https://imgur.com/UDeyKe5
Любая помощь приветствуется.