我想显示一个不会放置已登录用户帐户的用户列表。请建议我任何想法来解决它,谢谢合作...
SQL查询放在下面:
SELECT *
FROM users
WHERE level = 'student'
AND level NOT LIKE '%{$_SESSION['SESS_name']}%'
ORDER BY level ASC
我通常只是在我的表中创建一个列调用logged
,然后当他们登录时,您只需将此值设置为1
,当他们注销时您设置为0
。
然后查看所有登录的用户,就像...
SELECT * FROM users WHERE logged = 1;
并查看未登录的用户...
SELECT * FROM users WHERE logged = 0;
请注意,您有一个 sql 注入漏洞。试试这个
$stmt = $dbh->prepare('SELECT * FROM users WHERE level = "student" AND id != :userId ORDER BY level ASC');
$stmt->execute([':userId' => $_SESSION['userId']]);
这是使用 PDO http://php.net/manual/en/pdo.prepare.php
将您登录的用户 ID 存储在会话中,而不是名称