我需要一点帮助。我在mysql数据库中排名。
在mysql中排名如下:
代码:
ALTER TABLE `tbl_users` CHANGE `Rank` `Rank` ENUM('User','Power User','Uploader','Moderator','Administrator',) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'User';
因此。我想隐藏菜单名称'上传文件'排名用户*和**高级用户。并显示上传者,主持人,管理员
以下是上传页面导航菜单中的代码:
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Torrenti <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">.....</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">.....</a></li>
<li><a href="#">.....</a></li>
<li role="separator" class="divider"></li>
<li class="dropdown-header">.....</li>
<li><a href="upload.php">Upload file</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">.....</a></li>
</ul>
</li>
以下是用于检查用户是否已登录的PHP代码:
<?php
session_start();
require_once 'class.user.php';
$user_home = new USER();
if(!$user_home->is_logged_in())
{
$user_home->redirect('index.php');
}
$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
$stmt->execute(array(":uid"=>$_SESSION['userSession']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
?>
答案 0 :(得分:4)
最简单的方法是:
<?php if ($row["Rank"] == "Uploader" || $row["Rank"] == "Moderator" || $row["Rank"] == "Administrator") { ?>
<li><a href="upload.php">Upload file</a></li>
<?php } ?>
更优雅的方法是使用权限定义一个排名数组,并检查排名是否在数组中,如下所示:
<?php
$ranks_with_upload_persmission = array("Uploader", "Moderator", "Administrator");
if(in_array($row["Rank"], $ranks_with_upload_permission))
{
?>
<li><a href="upload.php">Upload file</a></li>
<?php
}
?>
此方法的优点是您不必编写那么多OR运算符。第二,它更具可读性,第三,它是可重复使用的。如果你想在页面上隐藏更多的元素,你只需要在in_array中进行操作,而不是复制整个if有很多OR。