Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Importar un archivo txt para llenar un Base de datos

Estas en el tema de Importar un archivo txt para llenar un Base de datos en el foro de Mysql en Foros del Web. hola necesito ayuda sobre como cargo un archivo de texto desde un servidor, el cual gurde por medio de un formulario, dicho archivo tiene los ...
  #1 (permalink)  
Antiguo 24/01/2007, 14:58
Avatar de elimaira  
Fecha de Ingreso: octubre-2006
Mensajes: 31
Antigüedad: 17 años, 6 meses
Puntos: 0
Importar un archivo txt para llenar un Base de datos

hola necesito ayuda sobre como cargo un archivo de texto desde un servidor, el cual gurde por medio de un formulario, dicho archivo tiene los ddatos que necesito cargar en la base de datos?? les agradeceria si m pueden ayudar....

Última edición por elimaira; 26/01/2007 a las 07:07 Razón: Necesito ayuda urgente
  #2 (permalink)  
Antiguo 24/01/2007, 16:28
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Importar un archivo txt para llenar un Base de datos

Con esa información, es difícil ayudarte..

¿Qué BD vas a usar?
¿Cómo están delimitados los datos en el archivo plano?
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 25/01/2007, 06:48
Avatar de elimaira  
Fecha de Ingreso: octubre-2006
Mensajes: 31
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Importar un archivo txt para llenar un Base de datos

Hola...bueno el archivo es un texto plano, tendria la siguiente forma por ejemplo:

1 001 cliente1
2 002 cliente2

t explico: la primera columna representaria la columna de id en la tabla de clientes, la segunda columna corresponde a la columna de cod_cliente y la tercera a la columna nomb_cliente.El archivo es un texto plano como t dije anteriormete,cada fila representaria una entrada o registro en la tabla de clientes, cada columna esta separada por tabulaciones.
Yo lo que hago es en un formulario cargo un archivo, el cual guardo en el servidor, luego uso estas sentencias:
Código PHP:
 $archivo "file/".$file_name;
            
$cons "LOAD DATA INFILE".$archivo." INTO TABLE email"
a la variable $ archivo, le doy la ruta donde se encuentra almacenado el archivo de texto para luego cargarlo, pero esto no m funciona....
si m podrias ayudar t lo agradeceré....
  #4 (permalink)  
Antiguo 27/01/2007, 09:35
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Importar un archivo txt para llenar un Base de datos

Un archivo texto, es un archivo plano, eso está claro. Lo que te preguntaba y me respondiste fue lo que importaba... CADA CAMPO SEPARADO POR UN TAB.

En esta sección, se responden consultas propias de BD o del motor de BD que estas usando. En tu caso estas poniendo código de programación y ahí puede que esté el problema.

Voy a hacer 2 cosas, la primera, mover tu consulta a MySQL y la segunda darte una recomendación que utilices el LOAD DATA INFILE pero sin usar INFILE, o sea, LOAD DATA. Luego, realiza la prueba pero SIN utilizar código PHP, o sea, directamente en la línea de comando de MySQL a ver si te funciona, si todo sale bien, ya lo podes utilizar en tu lógica PHP.

Pero por favor, no coloques código para que los foreros no se confundan y se separe bien lo que es BD y lo que es programación.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 27/01/2007, 20:43
Avatar de merolhack  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 1.242
Antigüedad: 17 años, 10 meses
Puntos: 16
Re: Importar un archivo txt para llenar un Base de datos

Hola, y si solo tengo un los datos para llenar un solo campo de la base de datos? digamos que mi tabla está así:

Cita:
campo_1 campo_2 campo_3
Y yo quiero meter esos 3 valores desde un archivo externo:
Cita:
valor_1 valor_2 valor_3
¿Cuál es el mejor formato de archivos para hacer esto? es un .txt? què necesito buscar en google para poder realizar la sentencia en el phpMyadmin correctamente? es que siempre quiero buscar en google... pero no se me ocurre que buscar :(
  #6 (permalink)  
Antiguo 04/02/2011, 15:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 3
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Importar un archivo txt para llenar un Base de datos

yo he estado intentando de hacerlo de varias formas pero me da un error.

trate con lo siguiente:

de que forma puedo restaurar una base de datos utilizando un archivo que sea capturado por un cuadro de texto.

estoy utilizando algo asi.

restaurar.php

<form name="formulario" id="fomulario" action="restaurar1.php" method="post">
<input type="file" name="archivo" id="archivo" >
<input type="submit">
</form>


[hr]
restaurar1.php
<?php

$file = $_POST["archivo"];

$sql = implode('', fopen($file,"r+"));
$sql_sentencias=explode(';',$sql);
$link= mysql_connect("localhost","root","");
mysql_select_db("pruebas");
foreach ($sql_sentencias as $sentencia_sql){
mysql_query($sentencia_sql) or die ('Error ejecutando:'.$sentencia_sql.'<br>Mysql dice: '.mysql_error());
}

?>



siempre me dice error ..... la unica forma que funciona es cuando el archivo a reestablecer se encuentra en el directorio del sistema, y lo deseo q se pueda restaurar desde cualquier otro lugar...


Warning: fopen(respaldo(5).txt) [function.fopen]: failed to open stream: No such file or directory in C:\wamp2\www\www\ameih\restaurar1.php on line 5

Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp2\www\www\ameih\restaurar1.php on line 5

Error ejecutando:
Mysql dice: Query was empty
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 23:08.