Foro de elhacker.net

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:
Código:
$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
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
  1. ...
  2.   $query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'");
  3.  
  4.   if(mysql_num_rows($query) < 1){
  5.      echo "No se encuentra en la tabla de usuarios.";
  6.      $query = mysql_query("SELECT username,password FROM administradores WHERE username = '$username'");
  7.   }
  8. ...
  9.  


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
  1. (SELECT * FROM table1 WHERE nombre LIKE "'%$busqueda%'")
  2. UNION
  3. (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
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
  1. (SELECT * FROM table1 WHERE nombre LIKE "'%$busqueda%'")
  2. UNION
  3. (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.