Foros del Web » Programando para Internet » PHP »

Problemas al importar datos de un *.dbf a SQL

Estas en el tema de Problemas al importar datos de un *.dbf a SQL en el foro de PHP en Foros del Web. Hola Grupo: Tengo un problema, resulta que tengo una tabla en dbf y he generado una rutina para que me pase los datos a una ...
  #1 (permalink)  
Antiguo 06/10/2004, 01:28
Avatar de jmfp26  
Fecha de Ingreso: diciembre-2003
Mensajes: 162
Antigüedad: 20 años, 11 meses
Puntos: 2
Pregunta Problemas al importar datos de un *.dbf a SQL

Hola Grupo:

Tengo un problema, resulta que tengo una tabla en dbf y he generado una rutina para que me pase los datos a una tabla en MySQL.

La rutina es la siguiente:

<?php
$db = abrir_base_datos("alumnos");

$dbf=dbase_open("alumnos.dbf",0);

for ($i=1;$i<=dbase_numrecords($dbf);$i++)
{
$reg=dbase_get_record_with_names($dbf,$i);

$fecha=convertir_a_fecha_bdd(substr($reg["FECHA_NACI"],0,10));

$sql="INSERT INTO empleados (nombre,apellidos, direccion, municipio, cp)
values ('".$reg['NOMBRE']."','".$reg['APELLIDOS']."','".$reg['DIRECCION']."','".$reg['MUNICIPIO']."','".$reg['CP']."')";
consulta($db,$sql);
}
printf("<br><br><b><big>¡Listo!");
?>


Me funciona perfectamente, pero tengo un problema ya que al ser datos en dbf el caracter de la Ñ me lo guarda como ¥.

O sea en el nombre BEGOÑA me lo guarda como BEGO¥A. Y tambien el municipio CORUÑA me lo guarda como CORU¥A.

Como lo puedo solucionar.
Podria recorer todos los datos y buscar este caracter ya que es el unico que me lo cambia y reemplazarlo. De ser esta la mejor solucion me puede dar alguien una orientacion de como hacerlo.


Gracias
Un Saludo
  #2 (permalink)  
Antiguo 06/10/2004, 04:36
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 5 meses
Puntos: 2
No sé si se podrá arreglar de alguna otra forma pero si nadie te da otra solución podrías hacer esto:

$sql="INSERT INTO empleados (nombre,apellidos, direccion, municipio, cp)
values ('".str_replace("Ñ","¥",$reg['NOMBRE'])."','".$reg['APELLIDOS']."','".str_replace("Ñ","¥",($reg['DIRECCION'])."','".str_replace("Ñ","¥",($reg['MUNICIPIO'])."','".str_replace("Ñ","¥",($reg['CP'])."')";
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 06/10/2004, 05:57
Avatar de jmfp26  
Fecha de Ingreso: diciembre-2003
Mensajes: 162
Antigüedad: 20 años, 11 meses
Puntos: 2
Funciona pero es al reves

Muchas Gracias:


Funciona perfectamente pero es al reves:

$sql="INSERT INTO empleados (nombre,apellidos, direccion, municipio, cp)
values ('".str_replace("Ñ","¥",$reg['NOMBRE'])."','".$reg['APELLIDOS']."','".str_replace("Ñ","¥",($reg['DIRECCION'])."','".str_replace("Ñ","¥",($reg['MUNICIPIO'])."','".str_replace("Ñ","¥",($reg['CP'])."')";


Asi es:

.str_replace("¥","Ñ",$reg['NOMBRE']).

Gracias.
Un Saludo
  #4 (permalink)  
Antiguo 06/10/2004, 05:59
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 5 meses
Puntos: 2
Perdona , ha sido un lapsus
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #5 (permalink)  
Antiguo 06/10/2004, 09:32
Avatar de jmfp26  
Fecha de Ingreso: diciembre-2003
Mensajes: 162
Antigüedad: 20 años, 11 meses
Puntos: 2
Exclamación Me puedes hechar una mano

Hola de nuevo:


Lo de antes me ha servido de mucho, pero haber si me puedes hechar una mano.

Supon que en lugar de ese caracter ¥ hubiera mas caracteres.
Lo que quiero es hacer una funcion que contenga varios .str_replace("el caracter que sea","supon que sea el acento",$reg['NOMBRE']).

Entonces simplemente la llamaria asi:

Funciona perfectamente pero es al reves:

$sql="INSERT INTO empleados (nombre,apellidos, direccion, municipio, cp)
values ("arregla_caracter,$reg['NOMBRE'])."',


Si me puedes hechar una mano en hacer la funcion te lo agradeceria.

Gracias
Un Saludo
  #6 (permalink)  
Antiguo 06/10/2004, 09:48
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 5 meses
Puntos: 2
Mucho más sencillo que eso. Mira este ejemplo, en vez de usar str_replace usaremos preg_replace

Código PHP:
<?
$origen
=array("/¥/","/§/");
$destino=array("ñ","í");
$sql="INSERT INTO empleados (nombre,apellidos, direccion, municipio, cp)
values ('"
.preg_replace($origen,$destino,$reg['NOMBRE'])."','".preg_replace($origen,$destino,$reg['APELLIDOS'])."','".preg_replace($origen,$destino,($reg['DIRECCION'])."','".preg_replace($origen,$destino,$reg['MUNICIPIO'])."','".preg_replace($origen,$destino,$reg['CP'])."')";

?>
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #7 (permalink)  
Antiguo 07/10/2004, 04:08
Avatar de jmfp26  
Fecha de Ingreso: diciembre-2003
Mensajes: 162
Antigüedad: 20 años, 11 meses
Puntos: 2
De acuerdo funciona Perfectamente

Muchas Gracias por tu ayuda, funciona perfectamente.


Un Saludo
  #8 (permalink)  
Antiguo 03/12/2007, 18:47
 
Fecha de Ingreso: diciembre-2007
Mensajes: 1
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas al importar datos de un *.dbf a SQL

Hola; agradesco su ayuda; al igual q jmfp quiero hacer mi rutina con una tabla dbf a mysql, e intentado seguir esa rutina pero no se como llamar la consulta porque nunca he trabajado php con dbf y no se como se trabaja la estructura: estoy utilizando este codigo, si podrian ayudarme a corregir se lo agraderia

<?php
$db=dbase_open('D:\Base_Datos\egresado.dbf',0);
for ($i=1;$i<=dbase_numrecords($db);$i++)
{
$reg=dbase_get_record_with_names($db,$i);

$sql="INSERT INTO alumnos (ID, CODIGO, NOMBRES, CODESP, SEXO)
values ('".$reg['id']."','".$reg['codigo']."','".$reg['nombres']."','".$reg['codesp']."','".$reg['sexo']."')";
//aqui necesito llamar la consulta
consulta($db,$sql);

}
printf("<br><br><b><big>¡Listo!");
?>


El ERROR cuando lo ejecuto en el server es:

Fatal error: Call to undefined function consulta() in C:\AppServ\www\intranet\exportar.php on line 10

Gracias
  #9 (permalink)  
Antiguo 03/12/2007, 22:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Problemas al importar datos de un *.dbf a SQL

La funcion consulta es para que tu implementes ahi la llamada a tu query, con mysql_connect, mysql_query y demas...

Saludos.
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 21:18.