2011-07-03 56 views
10

我開始在一個Mysql查詢上工作,它會一直出現一個錯誤?Mysql「where」and「or」statement

有人可以看看它,並告訴我我做錯了什麼?

$query = ("select * from `users` where (`username`='$username' and `password`='$password' or select * from `users` where `$username `='$email' and `password`='$password')"); 

誤差

mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a8423624/public_html/testchecklogin.php on line 57 

,這意味着它並沒有發現任何人。這意味着我的查詢是錯誤的?

+0

顯示SQL不足以解決PHP錯誤。 –

+0

你可以在這裏輸入錯誤字符串嗎? mysql_error()返回錯誤。 – Headshota

回答

21

... OR SELECT...是給錯誤。我想你嘗試寫爲:

$query = ("select * from `users` where (`username`='$username' OR `$username `='$email') and `password`='$password'"); 
+0

我相信'\'$用戶名\''也應該是'\'用戶名\'' – Mac

+0

在或條件。 –

+0

我認爲''$ username''是一個PHP變量 –

3

嘗試此查詢:

select * from `users` 
where 
(`username`='$username' or `username `='$email') and `password`='$password' 
+0

我認爲你必須添加一些paranthesis來分組'OR'子句,以便在'AND'之前對它進行評估 –

+1

@Tudor:剛剛完成。 –

1

作品!

SELECT * FROM "users" WHERE (username = '".$username."' OR username = '".$email."') AND password = '".$password."'";