Foros del Web » Programando para Internet » PHP »

Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

Estas en el tema de Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro en el foro de PHP en Foros del Web. Bueno voy a tratar de esplicarme lo mejor que pueda. tengo una base de datos la cual esta en VFP y me conecto a ella ...
  #1 (permalink)  
Antiguo 11/11/2010, 08:17
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 14 años, 7 meses
Puntos: 3
Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

Bueno voy a tratar de esplicarme lo mejor que pueda.

tengo una base de datos la cual esta en VFP y me conecto a ella mediante ODBC, puedo consultar los datos.

Código PHP:
# connect to a DSN "vfp" with a user and password "" 
$connect odbc_connect("vfp_libretas_bs_2010""""");


# query the users table for name and surname 
$query "SELECT 
    soc_cod
FROM
    socios"
;

# perform the query 
$result odbc_exec($connect$query);

# fetch the data from the database 
while(odbc_fetch_row($result))

    
$a odbc_result($result1); 
    
//print("del VFP: $a <br />");
    
$vfp $a;

y paralelamente tengo otro sistema de creacion mia que corre en mysql.
Para los datos de mi base en MySQL necesito algunos de la base en vfp como los datos de los socios, uno un programa que me convierte los datos de vfp a mysql pero quiero saber como poder actualizar mis datos por medio de PHP.

como ejemplo tengo lo siguiente:
en la tabla de socios del vfp tengo 3994 registros y en mi base en mysql tengo 3988 hay una diferencia de 6 registros, y la pregunta va por como hago para insertar en mi base MySQL esos 6 nuevos resigtros.

la tabla socios de la base vfp no tiene id autoincrementable.

todo esta bajo Win XP.

saludos
  #2 (permalink)  
Antiguo 11/11/2010, 09:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 7 meses
Puntos: 2534
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

en todo caso tendrías que usar fuerza bruta:

- realiza una consulta de los campos mas significativos a la base de datos completa, la VFP
- itera los resultados creando una consulta nueva para MySQL, una búsqueda de datos repetidos
- mientras obtengas resultados positivos quiere decir que los datos ya existen, en caso omiso los insertas
- finalmente repites la operación con las tablas que desees...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/11/2010, 09:11
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

esa es mi idea pero no me sale, es comparar registro a registro y los que no se cumpla la condicion pues que los inserte pero ni siquiera me sale la comparacion.

aca mi codigo entero:
Código PHP:
<? 
# connect to a DSN "vfp" with a user and password "" 
$connect odbc_connect("vfp_libretas_bs_2010""""");


# query the users table for name and surname 
$query "SELECT 
    soc_cod
FROM
    socios"
;

# perform the query 
$result odbc_exec($connect$query);

# fetch the data from the database 
while(odbc_fetch_row($result))

    
$a odbc_result($result1); 
    print(
"del VFP: $a <br />");
    
$vfp $a;
}

    
# close the connection 
odbc_close($connect); 

$link mysql_connect("localhost","root","CoopSA") or die ("Error: No se ha podido establecer la conexión con la BBDD. " mysql_error());
mysql_select_db("cartera",$link) or die ("Error: No se ha podido seleccionar la BBDD. 1" mysql_error());

mysql_query("SET NAMES 'utf8'"); 

$query_mostrar_1 mysql_query("
        SELECT
        soc_cod
        FROM 
            socios"
$link);

while(
$row mysql_fetch_array($query_mostrar_1))
{
        echo 
"del MySQL: ".$row['soc_cod']."<br>";
        
$mysql $row['soc_cod'];
        
}

while(
$vfp == $mysql)
{
        echo 
$vfp;
        echo 
$mysql;
}

?>
el bucle intente hacerlo por for pero no me salia ahora estoy intendando con while.
  #4 (permalink)  
Antiguo 11/11/2010, 09:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 7 meses
Puntos: 2534
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

hmm.. veo que realmente tienes problemas, ¿cuanto sabes sobre comparaciones, consultas e iteración de arreglos?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/11/2010, 09:41
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

bueno la verdad estoy haciendo pruebas, y como que todo se me junto y hago una cosa un rato otra cosa otro rato, es un quilombo por eso hasta aqui llegue no pude hacer mas pruebas.

y bueno sobre comparaciones, consultas y demas pues lo basico supongo.
  #6 (permalink)  
Antiguo 11/11/2010, 09:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 7 meses
Puntos: 2534
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

el seudo código podría ser algo así:
Cita:
$recurso = consulta_a_vfp();
mientras ($fila = hay_resultados($recurso))
{
$subconsulta = "SELECCIONAR DE LA tabla DONDE campo1=$fila->campo1 Y campo2=$fila->campo2";
si (hay_resultados_en_mysql($subconsulta)) continuamos;
si no entonces ejecutamos_en_mysql("INSERTAR EN LA tabla(campo1, campo2) VALORES($fila->campo1, $fila->campo2)");
}
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 11/11/2010, 10:04
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

gracias voy a adaptarlo a mi codigo :)
  #8 (permalink)  
Antiguo 11/11/2010, 10:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 12 años
Puntos: 25
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

no se te da un resultado pero vera aqui
http://www.w3schools.com/sql/sql_select_into.asp
  #9 (permalink)  
Antiguo 11/11/2010, 16:53
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

Cita:
Iniciado por pateketrueke Ver Mensaje
el seudo código podría ser algo así:
Cita:
$recurso = consulta_a_vfp();
mientras ($fila = hay_resultados($recurso))
{
$subconsulta = "SELECCIONAR DE LA tabla DONDE campo1=$fila->campo1 Y campo2=$fila->campo2";
si (hay_resultados_en_mysql($subconsulta)) continuamos;
si no entonces ejecutamos_en_mysql("INSERTAR EN LA tabla(campo1, campo2) VALORES($fila->campo1, $fila->campo2)");
}

muchas gracias!!!! salio tal cual queria, bueno aun no hago el insert pero saque la comparacion de los datos de una base con la otra y sale super, y al final los datos extras de la base en vfp.

solo que tengo un problema, por ejemplo en la base vfp el socio julio españa me sale ESPAс comparando con la base en MySQL que sale correctamente ESPAÑA y eso me pasa en todas las Ñ.

para salvar esto para mysql agrege esto a mi codigo:
mysql_query("SET NAMES 'utf8'");

hay alguna equivalencia para el otro?

saludos
  #10 (permalink)  
Antiguo 15/11/2010, 12:44
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Comparar datos de 2 bases y agregar los nuevos resgistros de uno al otro

bueno ya arregle el tema de las Ñ, pongo el codigo por si a alguien le pudiera servir:

Código PHP:
<? 
# connect to a DSN "vfp" with a user and password "" 
$connect odbc_connect("vfp_libretas_bs_2010""""");

$link mysql_connect("localhost","root","CoopSA") or die ("Error: No se ha podido establecer la conexión con la BBDD. " mysql_error());
mysql_select_db("cartera",$link) or die ("Error: No se ha podido seleccionar la BBDD. 1" mysql_error());

mysql_query("SET NAMES 'utf8'"); 

$query "SELECT 
    soc_cod,soc_apm
FROM
    socios"
;


$result odbc_exec($connect$query);
$a 0;
while(
$fila odbc_fetch_row($result))

    
$fila odbc_result($result1);
    
$apm odbc_result($result2);
    
//print("del VFP: $fila <br />");
    
$vfp $fila;
    
$ap_mat htmlentities($apm);
    
$subquery mysql_query("SELECT soc_cod,soc_apm FROM socios WHERE soc_cod=$fila"$link);
    
$row mysql_fetch_array($subquery);
    if(
$row == true)
    {
        
$a $a +1;
        echo 
$a.": ".$fila.",".$ap_mat."->".$row['soc_cod'].",".$row['soc_apm']."<br>";
    }
    elseif(
$row == false)
    {
        echo 
$a.": ".$fila.",".$ap_mat."->".$row['soc_cod'].",".$row['soc_apm']."<br>";
    }
    
}
?>
bueno lo publique tal cual me salio, no lo adorne nada ni cambie nada.

Etiquetas: bases, comparar, nuevos
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 04:54.