【发布时间】:2021-05-02 18:19:30
【问题描述】:
我在 admin 列的 users 表中有一个值为 2 的主管理员。还有值为1的普通管理员和值为0的用户。
主管理员可以指定其他用户为管理员并获得管理员权限。我有一个用户列表页面,我设法进行了 SQL 查询,因此没有一个常规管理员显示主管理员。我还想确保不为其他常规管理员显示常规管理员,但为主管理员显示。怎么做? SQL有异常吗?我读了一些关于 EXCLUDE 的东西,但我还不知道它是否对我有帮助。有什么更简单的方法可以做到这一点吗?
$ceo = 2;
$sql = $connection->prepare("SELECT id, name, email, admin, position, blocked, deleted FROM workers WHERE email!=? AND admin!=?");
$sql->bind_param("si", $_SESSION['user'], $ceo);
$sql->execute();
$users_listdb = $sql->get_result()->fetch_assoc();
$ _SESSION['user'] 包含任何授权用户的电子邮件地址。
【问题讨论】:
-
你到底想用这个查询做什么,你的问题是什么?
-
此查询显示用户列表,不包括主管理员和查看列表的常规管理员。问题在主要问题中有所描述。是否可以修改此请求以另外从管理员列表中删除其他常规管理员,但将绝对所有用户的显示保留给主管理员?我希望我说得更清楚。
-
当然,只需对管理员和主管理员使用不同的查询,或者作为替代选择所有用户(管理员列上没有条件)并根据当前用户的访问级别在 PHP 中将它们过滤掉。
标签: php sql prepared-statement