2011-07-03 11 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

私は、 '\' $ username \ ''も '\' username \ '' – Mac

+0

でなければならないと思います。 –

+0

私は '' $ username''がPHP変数だと仮定します –

3

は、この文字列で検索してください:

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

'OR'節をグループ化するためにいくつかのparanthesisを追加しなければならないと思うので、' AND'の前に評価されます。 –

+1

@Tudor:これだけです。 –

1

作品!

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