首页 > 解决方案 > mysqli_num_rows 没有显示想要的结果

问题描述

我的数据库中有一个“用户”表(目前有 4 个用户),其中包含不同的角色(1 = 用户,2 = 管理员,3 = 版主)。我想只向管理员和版主显示我的 php 脚本的一些行,所以我做了这个查询:(我知道它不安全)

$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$stuff = 'SELECT * FROM `users` WHERE role > 0';
$result = mysqli_query($conn, $stuff);

此查询列出角色大于 0 的所有用户。

require_once('link_to_script.php');
if (mysqli_num_rows($result) >1){
echo "Admin area";
}else{
echo "No Permissions";
}

这应该是自我解释(仅向角色高于 1 的用户显示“管理区域”)

我不知道我的错误是什么,我希望有人可以帮助我一点:)

标签: phpmysqli

解决方案


我现在正在抓住当前用户:

$userID = $page->users->currentUserId();
$stuff = 'SELECT role FROM `users` WHERE id = $userID';
$result = mysqli_query($conn, $stuff;
if (mysqli_num_rows($result) >2){
....

获取当前用户 ID 正在工作,但我如何将它与需要的角色进行比较?


推荐阅读