[英]This if statement isn't working - what am I doing wrong?
我正在嘗試檢索當前登錄用戶的訪問級別(管理員/成員/來賓),並據此在我的頁面上向他們顯示特定內容。 我現在正在嘗試使用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
}
}
$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
}
}
mysql_query
返回的$result
不是可以比較的字符串; 它是一種資源 。 您需要從$result
獲取行:
$row = mysql_fetch_assoc($result)
$access = $row['access'];
if($access == 'guest') {
...
}
...
其他一些問題:
mysql_real_escape_string
。 mysql
。 您應該嘗試使用mysqli
(MySQL改進版)或PDO (PHP數據對象)。 我看到兩個問題:1.您需要使用session_start(); 一開始。 否則,將不會執行您的if語句。 2. mysql_query($ q,$ con)不返回字符串。 它返回一個記錄集。 您需要使用mysql_fetch_assoc($ result); 返回關聯數組,然后通過以下方法從數組中檢索所需的值:
$ assoc_arr = mysql_fetch_assoc($ result); $ access = $ assoc_arr ['access'];
現在您可以比較$ access。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.