2014-02-12 64 views
0

因此,我將用戶的排名作爲統計員保存到SQL數據庫中。然後我想嘗試檢查它們的等級並將其與字符串進行比較。如果排名等於字符串,那麼我想讓他們訪問。這是我的代碼到目前爲止(哪些不起作用):我怎樣才能得到SQL數據庫的枚舉值在PHP

$email = stripslashes($email); 
    $password = stripslashes($password); 
    $email = mysql_real_escape_string($email); 
    $password = mysql_real_escape_string($password); 
    $sql = "SELECT RANK FROM $table WHERE EMAIL = '$email' and PASSWORD = '$password'"; 
    $result = mysql_query($sql); 

    $count = mysql_num_rows($result); 

    if($count == 1){ 
     if($result == "OWNER") { 
      header("location: panel.php"); 
     } else { 
      $message = "Permission denied."; 
     } 
    } else { 
     $message = "Incorrect email or password."; 
    } 

回答

1

重要通知!

mysql_*函數自PHP 5.5.0起已棄用。建議使用MySQLiPDO代替。

回答你的問題,你必須獲取查詢結果或使用mysql_result()

查詢

$sql = "SELECT RANK 
     FROM $table 
     WHERE EMAIL = '$email' and PASSWORD = '$password' 
     LIMIT 1"; 
$result = mysql_query($sql); 

獲取結果:

$rank = mysql_fetch_array($result); 
$rank = $rank['RANK']; 

或者使用mysql_result()代替:

$rank = mysql_result($result); 
+0

我知道他們不贊成但是當我試圖PDO,我甚至不能獲得用戶成功登錄... –

0

您必須mysql_fetch_assoc $ result var才能讀取表格行。另外我會建議你使用mysqli函數。在這裏,試試這個,而不是你的(不mysqli的,而不是由我自己測試):

$email = mysql_real_escape_string(stripslashes($email)); 
$password = mysql_real_escape_string(stripslashes($password)); 
$sql = "SELECT `RANK` FROM ".$table." WHERE `EMAIL` = '".$email."' and `PASSWORD` = '".$password."'"; 
$result = mysql_query($sql); 

$count = mysql_num_rows($result); 

$result = mysql_fetch_assoc($result); 

if($count == 1){ 
    if($result == "OWNER") { 
     header("location: panel.php"); 
    } else { 
     $message = "Permission denied."; 
    } 
} else { 
    $message = "Incorrect email or password."; 
}