Foros del Web » Programando para Internet » PHP »

error importando txt a mysql

Estas en el tema de error importando txt a mysql en el foro de PHP en Foros del Web. Hola a todos, Escribo porque tengo un problema al importar un archivo de texto a mysql, estoy utilizando el wamp y si lo hago de ...
  #1 (permalink)  
Antiguo 28/01/2009, 12:38
 
Fecha de Ingreso: enero-2009
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
error importando txt a mysql

Hola a todos,

Escribo porque tengo un problema al importar un archivo de texto a mysql, estoy utilizando el wamp y si lo hago de manera local (localhost) si funciona pero si lo intento hacer en el servidor desde un cliente me salen los siguientes errores:

[function.fopen]: failed to open stream: No such file or directory in D:\Program Files\wamp\www\finanzas\importar.php on line 26

en la linea 26 hay esto:

$handle = fopen("$filename", "r");

Warning: fgetcsv() expects parameter 1 to be resource, boolean given in D:\Program Files\wamp\www\finanzas\importar.php on line 27

en la linea 27 hay esto:

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)

y mi codigo es el siguiente:


$cone=mysql_connect("localhost","root","") or die("No se pudo conectar a la base de datos");

mysql_select_db("finanzas", $cone) or die("No se pudo hacer la conexion a la bdd");

$filename=$_POST['txt_file'];
$handle = fopen("$filename", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{

$import="INSERT into fina(proveedor,factura,fechas) values('$data[0]','$data[1]','$data[2]')";
mysql_query($import) or die(mysql_error());
}
fclose($handle);

Espero me puedan ayudar..
Gracias.
  #2 (permalink)  
Antiguo 28/01/2009, 12:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: error importando txt a mysql

Cita:
[function.fopen]: failed to open stream: No such file or directory in D:\Program Files\wamp\www\finanzas\importar.php on line 26
pues el primero error es claro, no encuentra el archivo especificado ... y el segundo se deriva del primero, etc, etc...

verifica que $filename sea un archivo (y ponlo sin comillas, no son necesarias ahí)

imprime su valor, y/o verificalo con is_file() antes de procesarlo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/01/2009, 12:47
 
Fecha de Ingreso: enero-2009
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error importando txt a mysql

Gracias por tu respuesta, eso es lo raro que no se porque no lo encuentra si el $filename lo toma de un campo tipo file, asi que muestra toda la ruta de donde se encuentra el archivo:

<input type="file" name="txt_file" />

y de manera local si funciona.
Gracias.
  #4 (permalink)  
Antiguo 28/01/2009, 12:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: error importando txt a mysql

lo has dicho, de manera local....

y si el servidor no esta configurado igual... pues ¿entiendes el problema??

ahora, con respecto a $filename ¿como y donde asignas su valor?? ¿estas usando $_FILES['txt_file']['tmp_name'] para acceder al archivo???

por que el name="txt_file" que usas, nos indica que debes hacerlo así... si no, revisa el manual de PHP

http://www.php.net/manual/es/features.file-upload.php


__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/01/2009, 13:15
 
Fecha de Ingreso: enero-2009
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error importando txt a mysql

Lo que uso para asignarle el valor a $filename es $_POST de la siguiente manera:

$filename=$_POST['txt_file'];

donde 'txt_file' es el nombre del campo 'file' que esta en el formulario.

con respecto a $_FILES tengo entendido que eso se usa para subir archivos al servidor pero los archivos TXT de los cuales necesito vaciar la informacion es mysql estan en el servidor por lo que no tendria que subirlos. Solo que eso lo necesito hacer desde un cliente.

O no se si tengas una idea mejor para importar informacion de un txt a mysql sin usar la funcion fgetscsv.

Se que existe la funcion LOAD DATA INFILE pero no he sabido de una sola persona que le haya funcionado ni he encontrado ejemplos de un script sencillo funcionando.

GRACIAS.
  #6 (permalink)  
Antiguo 28/01/2009, 13:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: error importando txt a mysql

haber, haber... estas completamente equivocado...

el <input type="file" name="txt_file"/> tan solo sirve para subir archivos, no mas... no rutas!!

por ende, $_POST['txt_file'] no debe funcionar ni en tus sueños...

pero deduzco que dices, en local si me funciona... porque, es obvio!!

la ruta física que "crees subir" es la misma ruta física de tu PC ... osea, estas en la misma maquina!!!


no se que técnica sea mejor para importar, pero aquí tienes un gran problema conceptual con respecto a como subir y procesar archivos en el servidor... sin importar el uso que le das...

por favor, revisa el manual de PHP para que puedes entender todo el sistema...

http://www.php.net/manual/es/features.file-upload.php


ya que de otro modo, si no subes un archivo... o bien, colocas el SQL o CSV en un <textarea/> de cualquier modo necesitaras importar este texto....


espero comprendas, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 28/01/2009, 15:49
 
Fecha de Ingreso: enero-2009
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error importando txt a mysql

Solo escribopara decir que ya lo resolvi.

En realidad el problema no fue que estuviera en el servidor o como local, solo me estaba equivocando en la ruta que le estaba dando,porque al tomar el TXT del servidor me tomaba la ruta con un mapeo que tengo y no realmente del servidor, puse la ruta desde la raiz en el servidor y ya se pudo.

De todas formas, gracias.
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 12:13.