Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema al consultar bbdd diferentes

Estas en el tema de Problema al consultar bbdd diferentes en el foro de Mysql en Foros del Web. Hola, Necesito consultar dos tablas ubicadas en bbdd diferentes dentro del mismo servidor , solo he logrado conectarme a una y mostrar los registros pero ...
  #1 (permalink)  
Antiguo 06/03/2008, 08:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema al consultar bbdd diferentes

Hola,

Necesito consultar dos tablas ubicadas en bbdd diferentes dentro del mismo servidor , solo he logrado conectarme a una y mostrar los registros pero no con dos ya que estoy usando el código siguiente:

<?

$conexio = mysql_connect("servidor","username","pass");
mysql_select_db ("registros", $conexio) OR die ("No se puede conectar");

$sql="SELECT id, nombre, apellido, email FROM tabla1 WHERE ...

$result=mysql_query($sql,$conexio);

if ($row= mysql_fetch_array($result))
{
echo "<TABLE BORDER='1'>";
echo "<TR><TD>id</TD><TD>nombre</TD><TD>apellido</TD><TD>email</TD></TR>";

DO
{
echo "<TR><TD>".$row["id"]."</TD><TD>".$row["nombre"]."</TD><TD>".$row["apellido"]."</TD><TD>".$row["email"]."</TR>";
}
WHILE ($row=mysql_fetch_array($result));
echo "</TABLE>";
}
?>

he visto que algunos plantean realizar una segunda conexion así:

$conexio1 = mysql_connect("servidor","username","pass");
$conexio2 = mysql_pconnect("servidor","username","pass");

o sea una conexión permanente al servidor para la segunda base, pero no logro configurar el código para vincular las tablas en diferentes bbdd para ejecutar la consulta.

Alguna ayuda???
Gracias.
  #2 (permalink)  
Antiguo 06/03/2008, 20:05
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema al consultar bbdd diferentes

Vaya nadie responde...

Vamos please alguien debe saber al menos si se puede hacer una conexion PHP a dos bases diferentes de un mismo servidor y realizar una consulta usando registros de tablas dentro de esas dos bases.
  #3 (permalink)  
Antiguo 06/03/2008, 20:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Problema al consultar bbdd diferentes

Es una pregunta que se responde con el manual...
Cuando necesitas consultar tablas de dos bases distintas en el mismo servidor, debes recordar cómo se hace el modelo de un SELECT según el manual:

Campos de una misma tabla:
Código:
SELECT campo1, campo2, campo3 FROM Tabla1;
Campos de dos tablas en una misma base:
Código:
SELECT Tabla1.campo1, Tabla2.campo2, Tabla1.campo3 
FROM Tabla1, Tabla2;
Campos de dos tablas en dos bases:
Código:
SELECT Base1.Tabla1.campo1, 
Base2.Tabla1.campo2, Base1.Tabla1.campo3 
FROM Base1.Tabla1, Base2.Tabla1;
Eventualmente se puede escribir con alias:
Código:
SELECT A.campo1, B.campo2, A.campo3 
FROM Base1.Tabla1 AS A, Base2.Tabla1 AS B;
Como ejemplo, posiciónate en el la base /USR de MySQL y ejecuta esto:
Código:
CREATE TABLE Test.Prueba(ID INT NOT NULL);
INSERT INTO Test.Prueba VALUES(1),(2),(3);
SELECT id FROM Test.Prueba;

Última edición por gnzsoloyo; 06/03/2008 a las 20:34
  #4 (permalink)  
Antiguo 07/03/2008, 10:42
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema al consultar bbdd diferentes

Hola gnzsoloyo,

Gracias por responder. El tema es que las consultas ya las tengo hechas y funcionan perfectamente en otros programas que me permiten conectarme simultáneamente a dos bases diferentes del mismo server como es el caso del programa SqlYog. Mi problema radica en que no encuentro como pasarle las variables para unir las dos bases y que sea mostrada en un html.

Hasta ahora lo más que he logrado es conectarme a una sola base y ejecutar las respectivas consultas, perooo el problema empieza cuando tengo que conectarme a dos bases simultaneamente y leer registros de las dos para volcarlas a un html.

Esta es mi consulta:

SELECT registros.usuarios.apellido, registros.usuarios.nombre,
registros.usuarios.email, registros.usuarios.fecha_registro, FROM_UNIXTIME(base.mdl_user.lastaccess) as tiempo,
registros.usuarios.id_pais, registros.usuarios.Vip
FROM registros.usuarios
LEFT JOIN base.mdl_user ON registros.usuarios.email = base.mdl_user.email
AND registros.usuarios.nombre = base.mdl_user.firstname
AND registros.usuarios.apellido = base.mdl_user.lastname
WHERE registros.usuarios.id_pais = "xxx"
AND registros.usuarios.Vip = "SI"
ORDER BY apellido

Esa consulta necesito mostrarla en una tabla html. Pero no puedo aunque me conecte a las dos bases pasar la consulta a variables para ser moestradas.


Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:41.