Foros del Web » Programando para Internet » PHP »

importar fichero txt a tabla mysql con php...

Estas en el tema de importar fichero txt a tabla mysql con php... en el foro de PHP en Foros del Web. Hola estoy intentando realizar algun script en php que me permita en primer lugar importar un archivo txt con los registros separados por punto y ...
  #1 (permalink)  
Antiguo 19/08/2005, 11:45
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
importar fichero txt a tabla mysql con php...

Hola estoy intentando realizar algun script en php que me permita en primer lugar importar un archivo txt con los registros separados por punto y coma(;) el codigo que tengo es este pero no me funciona directamente:

Código PHP:
$contenido file "$fichero" ); 
for( 
$i $i sizeof $contenido ); $i ++) { 

$linea trim $contenido $i ]); 
$arr explode ";" $linea ); 
$sql "insert into mi_tabla values ('" implode "','" $arr ) . "')" 
$consulta mysql_db_query $bd $sql ); 

el problema por otra arte es que no quiero machacar los datos sino hacer un vaciado de la tabla y luego importar el fichero, Alguna idea??
un saludo y muchas gracias...
  #2 (permalink)  
Antiguo 19/08/2005, 12:26
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Que error ocurre?
  #3 (permalink)  
Antiguo 25/08/2005, 01:50
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta error de sql y no se por que?

Hola gracias por contestar, el error que me da es de sql...

You have an error in your SQL syntax near '2 MM R.177','0,05','100335','100130')' at line 1

lo raro es que todos los registros estan igual y separados por punto y coma:

P;NOTA;NOTA;0,00;0;0
P;5612251CR;1xxxxx/MMCROMO;161,25;100294;100316
P;5621251CR;1820
MMCROMO.celta;151,85;100294;100316
P;ANULADO;DOCUMENTO ANULADO;0,00;0;0


ya llevo días con esto y no se por donde o como evitar que me de este error por que no lo entiendo. El archivo original es un *.DBF lo he abierto en acces, lo exporto a texto y luego trato de importarlo mediante el script.
gracias y saludos...
  #4 (permalink)  
Antiguo 25/08/2005, 02:56
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
Encontre El Problema...

Bueeno por fin, es que por no mirar bien ... el error era esta maldita ' (comilla simple) ahora el caso es como filtrarla y eliminarla de cualquier texto antes de hacer el insert o modificar el script de php ... la verdad es que estoy medio desconcertado ante esto, aguna ayudita?.

Código PHP:
<?php require_once('Connections/conect.php'); ?>
<?
mysql_select_db
($database_conect$conect); 

$contenido file "$fichero" );
for( 
$i $i sizeof $contenido ); $i ++) {

$linea trim $contenido $i ]);
$arr explode ";" $linea );
$sql "insert into testing values ('" implode "','" $arr ) . "')" ;
$consulta mysql_query ($sql$conect)or die(mysql_error());

?>
Gracias y saludos
  #5 (permalink)  
Antiguo 25/08/2005, 03:48
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta por mas que lo intento no consigo quitar la '

hola reforme el codigo y le he agregado esta función para que me remplace esto ' por nada.
<?$contenido = str_replace ("'", "", "$contenido");?>
y ahora obtengo este error:
Column count doesn't match value count at row 1

el script entero me quedaría de esta forma:
Código PHP:
<?php require_once('Connections/conect.php'); ?>
<?
mysql_select_db
($database_conect$conect); 

$contenido file "$fichero" );
for( 
$i $i sizeof $contenido ); $i ++) {
$contenido    str_replace ("'""""$contenido");
$linea trim $contenido $i ]);
$arr explode ";" $linea );
$sql "insert into testing values ('" implode "','" $arr ) . "')" ;
$consulta mysql_query ($sql$conect)or die(mysql_error());

?>
Alguna idea? gracias.
  #6 (permalink)  
Antiguo 25/08/2005, 04:02
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
Mensaje perdon por mi ignoracia...

esto era el script erroneo:

<?php require_once('Connections/conect.php'); ?>
<?
mysql_select_db
($database_conect, $conect);

$contenido = file ( "$fichero" );
for(
$i = 0 ; $i < sizeof ( $contenido ); $i ++) {
$contenido = str_replace ("'", "", "$contenido");
$linea = trim ( $contenido [ $i ]);
$arr = explode ( ";" , $linea );
$sql = "insert into testing values ('" . implode ( "','" , $arr ) . "')" ;
$consulta = mysql_query ($sql, $conect)or die(mysql_error());
}
?>
y este es el que si funciona y esta correcto:
Código PHP:
<?php require_once('Connections/conect.php'); ?>
<?
mysql_select_db
($database_conect$conect); 

$contenido file "$fichero" );
for( 
$i $i sizeof $contenido ); $i ++) {

$linea trim $contenido $i ]);
$linea    str_replace ("'""""$linea");
$arr explode ";" $linea );
$sql "insert into testing values ('" implode "','" $arr ) . "')" ;
$consulta mysql_query ($sql$conect)or die(mysql_error());

?>
Por si a alguie le sirve, este script es una importación de datos desde un archivo txt separando los campos por punto y coma a mysql y filtrando para eliminar en este caso ' comas simples (apostrofe) por si ponen nombres del tipo S'escorxador.

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 02:20.