微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何排除某些用户的某些数据?

如何解决如何排除某些用户的某些数据?

我有一个管理员,在 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'] 包含任何授权用户的电子邮件地址。

解决方法

您可以仅使用 if 语句根据用户级别更新 SQL 查询。

假设用户已登录并且用户的 id 是一个 $id 变量。

// User ID's 
$main_admin_id = 2;
$admin_id = 1;
$user_id = 0;

$sql = "SELECT id,name,email,admin,position,blocked,deleted FROM workers WHERE email != ?";
if ($id == 1) $sql .= ' AND (admin = ? OR admin = ?)';
else if ($id == 0) $sql .= ' AND admin = ?';

$stmt = $connection->prepare($sql);

if ($id == 0) $stmt->bind_param('si',$_SESSION['user'],$user_id);
else if ($id == 1) $stmt->bind_param('sii',$main_admin_id,$admin_id);
else $stmt->bind_param('s',$_SESSION['user']);

$stmt->execute();
$users_listdb = $sql->get_result()->fetch_assoc();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。