Foros del Web » Programando para Internet » PHP »

trabajar con dos BBDD

Estas en el tema de trabajar con dos BBDD en el foro de PHP en Foros del Web. he leido los post del foro sobre trabajar conjuntamente con dos bbdd en un mismo servidor pero no lo tengo claro del todo porque no ...
  #1 (permalink)  
Antiguo 14/06/2007, 04:06
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
trabajar con dos BBDD

he leido los post del foro sobre trabajar conjuntamente con dos bbdd en un mismo servidor pero no lo tengo claro del todo porque no me funciona.
el proceso es leer los mvts de un tabla y por cada registro hacer

- asignar un número de recibo y fecha
- generar un registro de factura
- leer un contador en la BBDD2
- gnerar un registro de salida en la BBDD2
- actualizar el contador en la BBDD2
- actualizar el mvto de la BBDD1

leer el siguiente registro de la BBDD1 .
aquí dejo el código ( los puntos suspensivos son para no poner la sentencia sql ya que son muy largas )

Código PHP:
$consulta "select * from parametres where vigent='S'";
$query mysql_query($consulta);
$row mysql_fetch_array($query);
$anyvigent=$row['parany'];
$numrebut=$row['parivarepercutit'];

$consulta "select * from moviajun where any = $wany and per = $wper and rebut < 1 order by municipi";
$result mysql_query($consulta);
while (
$row mysql_fetch_array($result)) {

    
// leer codigo
    
$sqlmun "select * from municipis where codi ="$row['municipi']; 
    
$resultmun mysql_query($sqlmun$link);
    
$rowmun=mysql_fetch_array($resultmun);        
    
    
$numrebut++;
     
    
// generar iva repercutido
    
$consulta2="insert into factures... ";
    
    
mysql_query($consulta2$conexion) or die($consulta2);
    
    
    
# ------ grabamos en la BBDD2 = REGISTRE
    
$sqlr1 mysql_db_query("registre","select * from parametres where vigent='S'");
    
$rowr1par mysql_fetch_array($sqlr1) or die($sqlr1);
    
$anyvigent=$rowr1par['any'];
    
$wordre=$rowr1par['sortides'] + 1;
    
    
$detall="Liquidació consum aigua Any: ".$wany." Periode: "$wper ." Núm.:"$numrebut;    
    
$sql "insert into registre ... ";
    
mysql_db_query("registre",$sql) or die ('Error registre no gravat '.$sql);
    
    
mysql_db_query("registre","update parametres set sortides=$wordre  where any = $anyvigent");


    
// actualiza el número de recibo a moviajunt    
    
$consulta1="update moviajun SET rebut=$numrebut, datarebut='$datarebut', numreg=$wordre, datasortida='$datarebut' 
                where any ="
$row['any']." and per = ".$row['per']." and municipi= ".$row['municipi'];
    
mysql_query($consulta1,$conexion) or die($consulta1);
    
// end-while 
  #2 (permalink)  
Antiguo 15/06/2007, 09:34
Avatar de Deeo  
Fecha de Ingreso: abril-2006
Ubicación: MEX-DF
Mensajes: 26
Antigüedad: 18 años
Puntos: 0
Re: trabajar con dos BBDD

Si pudieras ser un poco mas especifico con el problema, que errores te manda?.
De entrada si se puede trabajar con 2 o mas bd, pero por cada llamada a la BD la conexion debe cerrarse, a menos que venga incompleto el codigo que posteaste, no se ve algun cierre.... puede ser que por ahi este el problema.

saludos
  #3 (permalink)  
Antiguo 19/06/2007, 01:16
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
Re: trabajar con dos BBDD

el problema està en que una vez ha cambiado de BBDD para realizar los inserts y debe leer el siguiente en la BBDD principal se sale del while porque no encuentra mas.
lo he solucionado, pero no de una manera elegante: poniendo delante de la tabla el nombre de la bbdd registre.parametres y funciona bien, pero si quisiera canviar el nombre tendria que retorcar el código, en cambio si pudiera tener una segunda conexión no necesitaria tocar nada.
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 00:46.