Duda sobre conectar dos tablas en MySQL

Iniciado por xpartano.x, 7 Octubre 2011, 16:36 PM

0 Miembros y 1 Visitante están viendo este tema.

xpartano.x

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());

RedZer

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
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

fran800m

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'"


dark_sargon

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'");
   }
...
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

Shell Root

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%'");
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

dark_sargon

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.
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

Shell Root

Si si si si si, obviamente eso lo sé, sólo di un ejemplo.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

xpartano.x

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

fran800m

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.