2011-07-03 16 views
10

Empecé a trabajar en una consulta Mysql pero sigue apareciendo un error?Declaración de "dónde" y "o" de Mysql

¿alguien puede verlo y decirme qué estoy haciendo mal?

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

el error es

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

lo que significa que no ha encontrado a nadie. Esto significa que mi consulta es incorrecta?

+0

Mostrar el SQL no es suficiente para resolver un error de PHP. –

+0

¿puedes poner una cadena de error aquí? mysql_error() devuelve el error. – Headshota

Respuesta

21

El ... OR SELECT... está dando el error. Creo que está intentando escribir eso como:

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

Creo que '\' $ username \ '' también debería ser '\' username \ '' – Mac

+0

en la condición o. –

+0

Supongo que ''$ username'' es una variable de php –

3

Intentar esta consulta:

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

Creo que tienes que agregar algo de paranthesis para agrupar la cláusula 'OR', para que se evalúe antes de' AND' –

+1

@Tudor: acabo de hacer eso. –

1

¡Trabajos!

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