Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: xpartano.x en 7 Octubre 2011, 16:36 PM

Título: Duda sobre conectar dos tablas en MySQL
Publicado por: xpartano.x en 7 Octubre 2011, 16:36 PM
Hola a todos!
tengo una pequeña duda a ver si me la podeis resolver.

Quiero que en la secuencia MySQL:

Seleccionar usuario y contraseña de (hasta aqui vamos bien) usuarios Ó(quiero que si no existe el usuario en la tabla usuarios, examine en administradores) administradores WHERE ....

Este es mi codigo:
$query = mysql_query("SELECT username,password FROM usuarios, administradores WHERE username = '$username'") or die(mysql_error());
Título: Re: Duda sobre conectar dos tablas en MySQL
Publicado por: RedZer en 7 Octubre 2011, 17:20 PM
eso yo lo ago con una condicion if , es decir primero  buscas en la tabla usuarios , si la consulta devuelve basia entonces condicionas para que busque en la otra tabla
Título: Re: Duda sobre conectar dos tablas en MySQL
Publicado por: fran800m en 7 Octubre 2011, 18:44 PM
lo suyo es que usuarios tuviera un campo que identificara si es usu o adm, luego en php miras que tipo de usuario es y se te quedaba en :

SELECT username,password, tipoUser FROM usuarios, administradores WHERE username = '$username'"

Título: Re: Duda sobre conectar dos tablas en MySQL
Publicado por: dark_sargon en 9 Octubre 2011, 03:44 AM
Cita de: RedZer en  7 Octubre 2011, 17:20 PM
eso yo lo ago con una condicion if , es decir primero  buscas en la tabla usuarios , si la consulta devuelve basia entonces condicionas para que busque en la otra tabla

Yo pienso igual que RedZer, lo haría algo así:
Código (php) [Seleccionar]

...
   $query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'");

   if(mysql_num_rows($query) < 1){
      echo "No se encuentra en la tabla de usuarios.";
      $query = mysql_query("SELECT username,password FROM administradores WHERE username = '$username'");
   }
...
Título: Re: Duda sobre conectar dos tablas en MySQL
Publicado por: Shell Root en 9 Octubre 2011, 10:44 AM
No se mucho de MySQL, pero desde que se pueda hacer en una sola query sería mucho más rápido. Por ejemplo:

Código (sql) [Seleccionar]
(SELECT * FROM table1 WHERE nombre LIKE "'%$busqueda%'")
UNION
(SELECT * FROM table2 WHERE nombre LIKE "'%$busqueda%'");
Título: Re: Duda sobre conectar dos tablas en MySQL
Publicado por: dark_sargon en 9 Octubre 2011, 17:33 PM
Cita de: Shell Root en  9 Octubre 2011, 10:44 AM
No se mucho de MySQL, pero desde que se pueda hacer en una sola query sería mucho más rápido. Por ejemplo:

Código (sql) [Seleccionar]
(SELECT * FROM table1 WHERE nombre LIKE "'%$busqueda%'")
UNION
(SELECT * FROM table2 WHERE nombre LIKE "'%$busqueda%'");


Es verdad, sería mejor pero según le entendí al compañero xpartano.x, él necesitaba saber si no se encontraba en la tabla de usuarios.

Yo le recomendaría hacer una sola tabla con usuarios y administradores y a cambio de las dos tablas agregar un campo que describa si es usuario o administrador.
Título: Re: Duda sobre conectar dos tablas en MySQL
Publicado por: Shell Root en 10 Octubre 2011, 04:40 AM
Si si si si si, obviamente eso lo sé, sólo di un ejemplo.
Título: Re: Duda sobre conectar dos tablas en MySQL
Publicado por: xpartano.x en 10 Octubre 2011, 13:56 PM
esq tengo un panel de administracion
qiero q a los usuarios normales les salga unos links
y a los admin pues otros link.

lo que yo queria hacer es, q por ejemplo se loguea admin y q mire primero si esta en la tabla usuarios y si no esta q mire en la tabla administradores. se q sera con un if, pero no se como emplearlo :S
Título: Re: Duda sobre conectar dos tablas en MySQL
Publicado por: fran800m en 10 Octubre 2011, 14:23 PM
Chico te hemos contestado con la solución unas cuantas personas, yo creo que no sabes bastante ni de SQL ni de PHP. Pon algo de tu parte caramba.