Autor
|
Tema: Subir archivo .xls a base de datos!!! (Leído 6,757 veces)
|
01munrra
Desconectado
Mensajes: 282
|
saludos, le comento tengo este formulario subirXLS.php <form enctype="multipart/form-data" action="control.php" method="post" enctype="multipart/form-data" name="Archivo" id="Archivo"> <table width="219" border="0"> <tr> <td width="140"> Seleccionar Archivo </td> <td width="69"> <label> <input type="file" name="file" id="file" /> </label></td> </tr> <tr> <td> </td> <td><label> <input name="Archivo" type="submit" id="Archivo" value="Subir"> </label></td> </tr> </table> </form>
y este otro control.php <?php require_once 'Excel/reader.php'; require_once 'conexion.php'; $Archivo = $_FILES['file']; $dato = new Spreadsheet_Excel_Reader(); $dato->read('$Archivo'); $celdas = $dato->sheets[0]['cells']; for( $j=1; $j<15; $j++ ) { $Nombre = $celdas[$j][1]; $Nota = $celdas[$j][2]; $consulta = mysql_query("select nombre from archivo where nombre = '$Nombre'",$conexion); if($resultado == 1 ) { echo 'hola'; } else { $sql = "INSERT INTO archivo (nombre,nota)"; $sql.= "Values ('$Nombre','$Nota')"; } } echo 'Proceso Exitoso!!! '; ?>
OK.... entonces, lo que quiero hacer es leer un archivo xls una simple presentacion donde seleccionar desde un boton que te permitira explorar en el disco y buscar el archivo con extensión xls,,, pero resulta ser que el script control.php no me reconoceel archivo que le estoy enviando, sera que se lo estoy enviando mal????
|
|
|
En línea
|
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
Aca tenes un error en la sentencia SQL: $sql = "INSERT INTO archivo (nombre,nota)";
Deberia ser: $sql = "INSERT INTO archivo (nombre,nota) VALUES ('$nombre', '$nota')";
Es decir, te falta indicar que valore (VALUES) insertar en la DD.BB. prueba con eso, saludos!
|
|
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir!
|
|
|
01munrra
Desconectado
Mensajes: 282
|
me sigue dando el mismo error..........
este es el error "The filename $Archivo is not readable" .................
|
|
|
En línea
|
|
|
|
#!drvy
|
Hola, Errores no tan importantes:1. En el <form> tienes 2 veces declarado el enctype.2. El formulario y el boton submit tienen el mismo nombre. Errores muy importantesAparte, del que ya te ha mencionado @El As del Club Paris, $dato->read('$Archivo');
Usas comillas simples. La variable no se lee y queda como texto puro. La solucion seria $dato->read($Archivo);
* Recuerda que si tienes las variables globales activadas va a funcionar mal porque el formulario y el botón submit tienen el mismo nombre. Errores gravesNo filtras ninguna variable que te envían. Problema grave de seguridad. Consulta sobre como evitar SQLi , y la subida de ficheros no deseados. Saludos
|
|
|
En línea
|
|
|
|
01munrra
Desconectado
Mensajes: 282
|
Gracias!!!! me sirvio bastante su ayuda pero tengo un error, les cuento la logica de este codigo, lo que quiero es leer un archivo .xls y montarlo en la base de datos, resulta ser que tengo una clases de excel que me permite leer archivos de esta extensión(xls) para poder manipularlo, entonces les cuento que pobre con esto: para probar las clases hice esto: $dato = new Spreadsheet_Excel_Reader(); $dato->read('datos.xls'); es decir le asigne el archivo xls directamente para probar las clases y si me funciona de esta forma, me lo guarda en la base de datos, todo bien.... pero cuando pruebo de la forma como les comente arriba de esta forma: $Archivo = $_FILES['file']; es decir que trabaje con el archivo la cual se le asigne desde el formulario de subirXLS.php, pero cuando lo corro haci me aroja errores en las clases que estoy usando.... aqui las clases que estoy usando. http://www.4shared.com/file/J6aVAnSg/oleread.htmlhttp://www.4shared.com/file/ViHrv1uf/reader.htmlson 2 archivos,........... les agradezco su ayuda de verdad...............
|
|
|
En línea
|
|
|
|
#!drvy
|
Hola, Has probado con usar el tmp_name ? Algo tipo así: $Archivo = $_FILES["file"]["tmp_name"];
PD: Si muestras los errores que te tira, quizás te podamos ayudar mas... Saludos
|
|
|
En línea
|
|
|
|
01munrra
Desconectado
Mensajes: 282
|
Gracias!!!!! ahora si me funciona............ no conocia esa forma,,,, que esta haciendo el tmp_name ???? ........... otra cosa, estoy tratando de hacer un ciclo donde me lea la informacion del archivo xls, resulta ser que lo estaba haciendo haci while( $celdas[$j][1] != "" ) { //sentencias $i ++; } pero me da un error al leerlo, tienes alguna idea de hacerlo mejor??? gracias de antemano,,,,
|
|
|
En línea
|
|
|
|
#!drvy
|
Hola,
Que error te da ? Prueba utilizando foreach, es mas rápido que whille.
Respecto a tmp_name, contiene la ruta y nombre temporal que se le da al archivo, al subirlo mediante php.
Saludos
|
|
|
En línea
|
|
|
|
01munrra
Desconectado
Mensajes: 282
|
fijate como estoy haciendo el ciclo de lectura del archivo xls.: $j = 1; while( $celdas[$j][1] != "" ) { $Nombre = $celdas[$j][1]; $Nota = $celdas[$j][2]; $consulta = mysql_query("select nombre from archivo where nombre = '$Nombre'",$conexion); if($resultado == 1 ) { } else { $sql = "INSERT INTO archivo (nombre,nota) Values ('$Nombre','$Nota')"; } $j++; }
y me lanza este error Notice: Undefined offset: 20 in C:\wamp\www\Ejemplo Excel\control.php on line 12 Proceso Exitoso!!!
la linea 12 es la del while... bueno cabe destacar que si me lo esta guardando en la base de datos, pero igual me lanza este error...
|
|
« Última modificación: 21 Enero 2012, 04:55 am por 01munrra »
|
En línea
|
|
|
|
#!drvy
|
Hola, Mmmm... lo del offset es porque te pasas de las celdas y ya no puede obtener ninguna... Prueba así: foreach($celdas as $celda){ $Nombre = $celda[1]; $Nota = $celda[2]; // resto del codigo SIN el j++ }
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como subir mi base de datos
PHP
|
ba-botas
|
7
|
5,389
|
3 Agosto 2007, 19:03 pm
por programatrix
|
|
|
Subir imagen a base de datos
PHP
|
layker
|
2
|
3,643
|
12 Mayo 2008, 06:31 am
por Syphroot
|
|
|
Como leo un archivo(base de datos) con c++?
Programación C/C++
|
razler
|
1
|
3,661
|
28 Junio 2010, 04:16 am
por nicolas_cof
|
|
|
Subir una base de datos MySQL a un servidor
Desarrollo Web
|
Kefren
|
2
|
9,759
|
4 Febrero 2011, 16:38 pm
por Kefren
|
|
|
Subir un fichero y relacionarlo en la base de datos
PHP
|
dimitrix
|
8
|
3,989
|
17 Mayo 2011, 00:50 am
por RedZer
|
|