2013-06-05 69 views
0

好吧我正在搖着頭對着自己,因爲我知道這是顯而易見的,但我只是沒有得到它。查詢應返回1結果與匹配的用戶名和密碼,然後 - 我只需要檢查列/字段「狀態」在行中設置爲無效或暫停 - 如果是,然後設置$計數值並設置一個$ _SESSION值的味精。如果SQL查詢中的表述不正確

因爲它現在的狀態檢查不起作用 - 是因爲我如何比較column.field名稱? $結果[ '狀態']?

我的查詢如下:

$sql="SELECT * FROM $tbl_name WHERE User_Name='$myusername' and Password='$mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 

// Verified E-Mail address check 
if ($result['Status']=="Inactive") {$count=5;$_SESSION['msg']=="Not Verified";}; 
+0

最後的代碼行有一個錯誤在這裏,我已經糾正了,但不是問題:'//驗證的E-Mail地址檢查 如果($結果[「狀態」] ==」無效「){$ count = 5; $ _ SESSION ['msg'] =」未驗證「;};' – DMSJax

+0

請告訴我密碼不是純文本 – 2013-06-05 20:16:14

+0

現在是,它的所有本地測試環境,生活 – DMSJax

回答

3

您應該使用mysql_fetch_arraymysql_fetch_assoc從您的查詢中獲取數據的陣列。

$sql="SELECT * FROM $tbl_name WHERE User_Name='$myusername' and Password='$mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 

// Verified E-Mail address check 

$row = mysql_fetch_array($result); 

if ($row['Status']=="Inactive") {$count=5;$_SESSION['msg']=="Not Verified";}; 

而且,我的建議是不是所有的,因爲他們是從5.5版本棄用使用mysql_功能。退房mysqli甚至更​​好pdo

+0

您先生,也是正確的 –

+0

這很有趣我和@jcsanyi如何發佈完全相同的答案和編輯在同一時間:D –

+0

@GoranLepur你知道我曾嘗試過,並沒有奏效,但回去嘗試它在答案後再次得到它的工作。所以,我不知道,也許我輸錯了一些東西 - 但無論如何答案都是正確的,並且謝謝你的幫助。 – DMSJax

3

您需要從結果獲取你的數據行之前,你可以比較值。

事情是這樣的:

$result = mysql_query($sql); 
$data = mysql_fetch_array($result); 
if ($data['Status'] == 'Inactive') { 
    ... 
} 

話雖這麼說,有充分的理由不使用mysql_ *函數。
詳情請參閱此問題: Why shouldn't I use mysql_* functions in PHP?

+0

你先生,是正確的 –

+0

謝謝你添加的鏈接:) –

+0

@jcsanyi也正確的JC,在迄今爲止mysql_ *我從字面上只有大約2周進入學習/重新學習PHP約6年後缺席那種語言。所以,我通過示例學習,編輯,然後做我自己的,在線的一些例子仍然使用mysql_ *而不是mysqli_ *,但我會努力糾正錯誤的代碼,謝謝指出它。 – DMSJax