Programación Web y Scripting > PHP
Consultar En Dos Tablas Al Mismo Tiempo
Altareum:
--- Citar ---SELECT tabla1.username, tabla2.username
FROM tabla1
LEFT JOIN tabla2 ON ( tabla1.username = tabla2.username )
WHERE tabla1.username = "$usuario" AND tabla1.pass = "$clave"
--- Fin de la cita ---
De esta forma, si no hay registros en tabla 2 el segundo campo traerá NULL, y si no existe en tabla 1 no dará resultados.
Asumo que las claves en ambas tablas son la misma, o mejor dicho, que los registros son de tabla2 corresponden al mismo usuario que en tabla1, sin necesidad de chequear que las claves sean iguales, en todo caso, usa esto:
--- Citar ---LEFT JOIN tabla2 ON ( tabla1.username = tabla2.username AND tabla1.pass = tabla2.pass )
--- Fin de la cita ---
Altareum.
neorent:
Altareum:
muchas gracias por tu ayuda y guia bueno yo hice lo siguiente y quisiera saber pk me da el siguiente error este es el code:
--- Código: Text --- <?php$usuario=$_POST['usuario'];$clave=$_POST['clave'];echo"$usuario, $clave"; $conn = mysql_connect("localhost", "root", "");mysql_select_db("internet_db",$conn);$ssql = "SELECT * FROM usuario WHERE nombre='$usuario' and passw='$clave'";$sql="SELECT * FROM inscrito WHERE username='$usuario' and clave='$clave'";$rs = mysql_query($ssql,$conn);$rs2= mysql_query($sql, $conn);if (mysql_num_rows($rs)!=0) { $autentificado = "SI"; if (mysql_num_rows($rs2)!=0) { echo "<script> top.location.href='portal/index.php'; </script>"; } else { echo "<script> top.location.href='inscripcion.php?user=$usuario&pass=$clave'; </script>"; } }else { $autentificado = "NO"; echo "<script> top.location.href='index.php'; </script>"; }mysql_free_result($rs);mysql_close($conn);?>
y me da el siguiente error:
--- Código: Text --- user, passWarning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\easyphp1-8\www\validar.php on line 13
me podrian ayudar nuevamente a ver en que estoy mal?, gracias,
saludos,
neo.
F_Tanori:
lo que pasa es que $rs no es un Resultset valido la consulta no te esta devolviendo resultados
yo lo haria de esta manera:
--- Código: Text ---SELECT u.* ,(SELECT i.usuario FROM inscritos i where i.usuario=u.usuario) EnTabla2 FROM usuarios u WHERE u.usuario='$usuario'
si el campo 'EnTabla2' devuelve NULL es que no esta en la tabla 2, si la consulta no devulve registros no esta en la Tabla 1
aunque supongo que si no esta en la tabla 1 no esta en la 2 :unsure: :P
yo te aconsejo que no busques las contraseñas a traves de SQL
--- Código: Text ---"SELECT * FROM usuario WHERE nombre='$usuario' and passw='$clave'";
Mejor toma el resultado y compara aparte...
--- Código: Text ---$rs = mysql_query("SELECT nombre,password FROM usuario WHERE nombre='$usuario'",$conn);$pass=mysql_fetch_row($rs);$pass=$pass[1] if ($pass[1] == $clave) { ..... }
Saludos
neorent:
estimados todos debo un gran disculpa
el error era que consultaba en la tabla usuario y realmente era usuarios pero bueno son cosas que pasan y agradesco la ayuda de todos ustedes muchisimas gracias se pasaron,
saludos,
neo.
Navegación
[*] Página Anterior
Ir a la versión completa