Foros del Web » Programando para Internet » PHP »

consultar dos bases de datos

Estas en el tema de consultar dos bases de datos en el foro de PHP en Foros del Web. hola chicos, pues tengo el siguiente problema: Tengo que jalar datos de una tabla de base de datos de mysql y luego gardar la informacion ...
  #1 (permalink)  
Antiguo 02/06/2009, 10:31
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta consultar dos bases de datos

hola chicos, pues tengo el siguiente problema: Tengo que jalar datos de una tabla de base de datos de mysql y luego gardar la informacion obtenida en otra base de datos tambien de mysql, cada vez que el usuario igrese su clave en la pagina deberá hacer la consulta y actualizar la informacion en la segunda base de datos he buscado, pero la verda como que no me queda bien la idea clara. Alguien me podria decir como le podria hacer por favor, cualquier recomendacion es bien recibida y se agradece.
  #2 (permalink)  
Antiguo 02/06/2009, 10:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 6 meses
Puntos: 1517
Respuesta: consultar dos bases de datos

escribe el codigo para poder indicarte que vas a hacer y tambien la estructura de las dos base de datos
  #3 (permalink)  
Antiguo 02/06/2009, 10:40
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 12 años
Puntos: 6
Respuesta: consultar dos bases de datos

Ya te has dado la solucion...

Hacer un select en una y un insert o update en la otra...
  #4 (permalink)  
Antiguo 02/06/2009, 10:41
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 7 meses
Puntos: 19
Respuesta: consultar dos bases de datos

pues si dices que el usuario ingresa y con sus datos se hce la primera consulta obtienes esos adtos haces una conexion seleccionando ahora la otra bd y de ahi tu insercion o lo que tengas que hacer
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #5 (permalink)  
Antiguo 02/06/2009, 10:45
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Neverland
Mensajes: 435
Antigüedad: 15 años, 7 meses
Puntos: 15
Respuesta: consultar dos bases de datos

Hola mira si usaras Oracle eso se haria facilmente con un DBLINK, pero creo que en MySQL no existe los DBLink(Haber si alguien me corrige si estoy mal), en su lugar tienes la opción de usar el motor de almacenamiento FEDERATED. El motor FEDERATED está disponible desde MySQL 5.0.3. Es un motor que accede a datos en tablas de bases de datos remotas en lugar de tablas locales. Checa esta dirección:

http://dev.mysql.com/doc/refman/5.0/...ge-engine.html
__________________
Rubén Darío Huamaní Ucharima
Blog : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #6 (permalink)  
Antiguo 02/06/2009, 10:47
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: consultar dos bases de datos

gracias por responder, pero bueno, talvez se muy tonto pero mi confusion radica principalmente en que he encontrado que debo establecer la conexion en settings.php y no se donde se encuentra ese archivo, o como debe hacer la conexion con las dos bases de datos o como las identifico que se debe de conectar a una o a otra.
  #7 (permalink)  
Antiguo 02/06/2009, 10:50
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 12 años
Puntos: 6
Respuesta: consultar dos bases de datos

vale, haber empezado por ahí...estás utilizando una aplicación prefabricada?? Cual??
  #8 (permalink)  
Antiguo 02/06/2009, 11:00
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: consultar dos bases de datos

no, no estoy usando ninguna aplicacion prefabricada, solo que al buscar e encontrado eso.
Bueno principalmente como establesco mi conexion con dos bases de datos, normalmente lo hago de la siguiente forma.

mysql_connect('localhost','root','hoy')or die ('Ha fallado la conexion: '.mysql_error());
mysql_select_db('documentacion')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

pero usar dos bases de datos como le hago?
  #9 (permalink)  
Antiguo 02/06/2009, 11:11
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 7 meses
Puntos: 19
Respuesta: consultar dos bases de datos

segun la logica como la conexion hace referencia al server donde estan las dos db, lo unico que aria seria crear otro mysql_select_db para tu otra bd
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.

Última edición por By_George; 02/06/2009 a las 11:19
  #10 (permalink)  
Antiguo 02/06/2009, 11:17
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 12 años
Puntos: 6
Respuesta: consultar dos bases de datos

Claro, tienes que hacer primero la conexión a cada BBDD...
  #11 (permalink)  
Antiguo 02/06/2009, 12:54
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: consultar dos bases de datos

gracias pero como puedo hacer la conexion si son dos diferentes servidores, cada base de datos se encuentra en uno diferentes
  #12 (permalink)  
Antiguo 02/06/2009, 12:57
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 7 meses
Puntos: 19
Respuesta: consultar dos bases de datos

pos entonces crea una conexion para cada uno, asi como lo haces para una:

$conexion1=mysql_connect('localhost','root','hoy') or die ('Ha fallado la conexion: '.mysql_error());
mysql_select_db('documentacion')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

haces tu consulta con esa conexion

y de ahi la otra conexion y haces consulta con esa conexion
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #13 (permalink)  
Antiguo 02/06/2009, 13:38
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: consultar dos bases de datos

ok gracias chicos, tengo estas dos conexiones

Cita:
$conexion1= mysql_connect('localhost','root','hoy')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('documento')or die ('Error al seleccionar la Base de Datos: '.mysql_error());


$conexion2= mysql_connect('localhost','root','xxx')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('prueba')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
ahora quiero hacer una consulta la $conexion2 con el siguiente select

Cita:
<select name="nombre_proy">
<option selected="selected" >** SELECCIONA UN NOMBRE **</option>
<?
$reg = mysql_query("SELECT nombre FROM prueba WHERE anio='".$_SESSION['anio']."' and clave='".$_SESSION['clave']."'");
while($fila=mysql_fetch_row($reg)){?>
<option value="<?=$fila[0]?>">
<?=$fila[0]?>
</option>
<? }?>
</select>
en embargo no me muestra ningun dato de la consulta apesar de que si tiene datos la base de datos, en que estoy mal?
  #14 (permalink)  
Antiguo 02/06/2009, 14:49
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: consultar dos bases de datos

pues estoy manejando ahora la conexion de esta forma

Cita:
$db_url['default'] = mysql_connect('localhost','root','hoy')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
mysql_select_db('documento')or die ('Error al seleccionar la Base de Datos: '.mysql_error());


$db_url['secondary']= mysql_connect('localhost','root','xxx')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
mysql_select_db('prueba')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
y la consulta de esta forma:

Cita:
<select name="nombre">
<option selected="selected" >** SELECCIONA UN NOMBRE **</option>
<?
db_set_active('secondary'); //conectarse a la base de datos
$consulta=db_fetch_object(db_query("SELECT nombre FROM prueba WHERE anio='".$_SESSION['anio']."' and clave='".$_SESSION['clave]."'"));
while($fila=mysql_fetch_row($consulta)){?>
<option value="<?=$fila[0]?>">
<?=$fila[0]?>
</option>
<? }?>
</select>

pero tampoco me la hace, por favor en que estoy mal o de que otra forma lo puedo hacer
  #15 (permalink)  
Antiguo 02/06/2009, 16:45
 
Fecha de Ingreso: abril-2009
Ubicación: Cuba
Mensajes: 54
Antigüedad: 10 años, 7 meses
Puntos: 2
Respuesta: consultar dos bases de datos

Chiquitica12
Es muy simple.

Lo que tienes que hacer es luego de haber definido las conexiones a las bases de datos, siempre que vayas a hacer alguna llamada usando alguna función mysql, select_db, insert, select, update o delete, tienes que poner al final el identificador de la conexión que estás usando.
Es decir, te quedaría algo así.

Código PHP:
$conexion1mysql_connect('localhost','root','hoy')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
mysql_select_db('documento'$conexion1)or die ('Error al seleccionar la Base de Datos: '.mysql_error());


$conexion2mysql_connect('localhost','root','xxx')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
mysql_select_db('prueba'$conexion2)or die ('Error al seleccionar la Base de Datos: '.mysql_error()); 
y así sucesivamente.
Por ejemplo, cuando vas a hacer un select a una tabla nombre_tabla de la base de datos de prueba, tienes que hacer así:
Código PHP:
$result mysql_select("select * from [B]nombre_tabla[/B] Where condicion"$conexion2); 
Dime si entiendes.
Lo acabo de probar con dos servidores y tablas diferentes y funciona perfectamente.

Saludos y espero poder ayudarte.
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 18:51.