我正在尝试检索当前登录用户的访问级别(admin / member / guest),并根据此情况在我的页面上显示特定内容。我正试图用echos现在测试这个,但仍然无法打印出任何东西。有人可以提出任何建议吗?
if(isset($_SESSION['username'])){
global $con;
$q = "SELECT access FROM users WHERE username = '$username' ";
$result = mysql_query($q, $con);
if($result == 'guest')
{
echo "You are a guest";// SHOW GUEST CONTENT
}
elseif($result == 'member')
{
echo "You are a member"; // SHOW OTHER CONTENT
}
elseif($result == 'admin')
{
echo "You are an admin";// SHOW ADMIN CONTENT
}
}
答案 0 :(得分:2)
$result
是一个mysql资源。你需要
if(isset($_SESSION['username'])){
global $con;
$q = "SELECT access FROM users WHERE username = '$username' LIMIT 1";
$result = mysql_query($q, $con);
$row = mysql_fetch_assoc($result);
$access = $row['access'];
if($access == 'guest')
{
echo "You are a guest";// SHOW GUEST CONTENT
}
elseif($access == 'member')
{
echo "You are a member"; // SHOW OTHER CONTENT
}
elseif($access == 'admin')
{
echo "You are an admin";// SHOW ADMIN CONTENT
}
}
答案 1 :(得分:1)
mysql_query
返回的 $result
不您可以比较的字符串;它是resource。您需要从$result
获取行:
$row = mysql_fetch_assoc($result)
$access = $row['access'];
if($access == 'guest') {
...
}
...
其他一些问题:
mysql_real_escape_string
。mysql
(MySQL改进版)或mysqli
(PHP数据对象)。答案 2 :(得分:0)
我看到两个问题:
1.你需要使用session_start();在开始。否则你的if语句将不会被执行。
2. mysql_query($ q,$ con)不返回字符串。它返回一个记录集。你需要使用mysql_fetch_assoc($ result);返回关联数组。从数组中,您可以通过以下方式检索所需的值:
$ assoc_arr = mysql_fetch_assoc($ result);
$ access = $ assoc_arr ['access'];
现在您可以比较$ access。