Foros del Web » Programando para Internet » PHP »

A ver si pueden ayudarme a importar datos

Estas en el tema de A ver si pueden ayudarme a importar datos en el foro de PHP en Foros del Web. tengo un fichero con 3 campos separados por un tabulador. ¿Cómo puedo hacer para meter esta información en una BD mysql? primero tendría que borrar ...
  #1 (permalink)  
Antiguo 16/01/2002, 05:39
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 15 años, 11 meses
Puntos: 0
A ver si pueden ayudarme a importar datos

tengo un fichero con 3 campos separados por un tabulador. ¿Cómo puedo hacer para meter esta información en una BD mysql? primero tendría que borrar la información que ya contiene la BD y luego meter la nueva información, pero, ¿como hago esto? ¿Se les ocurre alguna forma de importar la información automáticamente con sólo dar el fichero? A mi se me ha ocurrido pasar esa información a un fichero de texto con sus sentencias INSERT y luego meter esa información a mano en la BD, pero eso es un poco cutre. Ojalá puedan ayudarme. Gracias y un saludo
  #2 (permalink)  
Antiguo 16/01/2002, 08:45
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Re: A ver si pueden ayudarme a importar datos

No te explicás si por cada linea hay tres datos separados por TAB y un fin de linea al final.
Yo supongo que asi es y paso a explicarte como seria un script.

<?
//Supongo que ya estamos conectados al mysql
$archivo = "datos.txt";
$file = file($archivo);
foreach ($file as $linea)
{
$datos = explode ("\t", $linea);
mysql_query("INSERT INTO tabla (campo1, campo2, campo3) VALUES ($datos[0], $datos[1], $datos[2])");
}
?>

Que es lo que hace el script? bueno, primero y antes que nada leemos el archivo de datos com la funcion file(), que lo que hace es devolver un array donde cada posicion es una linea del archivo.
Luego, recorremos todas las lineas y dentro de cada linea, utilizamos explode() para separar los datos de cada linea, que estan separados por TAB (\t). Finalmente, grabamos los datos en la base.

Espero que te sirva.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #3 (permalink)  
Antiguo 17/01/2002, 12:04
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: A ver si pueden ayudarme a importar datos

gracias tio. Por cierto, ¿sabes como borrar una tabla de una bd?
  #4 (permalink)  
Antiguo 17/01/2002, 12:37
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: A ver si pueden ayudarme a importar datos

Ya te lo contesté en otro mensaje aunque el drop table te borra la tabla de la base de datos y no sé si es eso lo que querés. Para borrar el CONTENIDO de la tabla tenés que hacer DELETE FROM nombre_tabla.
Suerte!.

Leonardo D'Angelo
Buenos Aires
Argentina
  #5 (permalink)  
Antiguo 17/01/2002, 12:49
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: A ver si pueden ayudarme a importar datos

Te agradezco mucho que me ayudes. ¿Puedes decirme por que no puedo borrar los datos de la tabla?.El código es:

$descriptor = mysql_connect &quot;localhost&quot;, &quot;nobody&quot;); mysql_select_db(&quot;articulos&quot;, $descriptor);
mysql_query (&quot;DELETE * FROM articulos&quot;, $descriptor);


Gracias

  #6 (permalink)  
Antiguo 17/01/2002, 13:00
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: A ver si pueden ayudarme a importar datos

Ya lo solucioné. Lo que pasa es que a veces me agobio un poco. ¡Gracias por todo!
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:56.