elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Subir archivo .xls a base de datos!!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Subir archivo .xls a base de datos!!!  (Leído 6,757 veces)
01munrra

Desconectado Desconectado

Mensajes: 282



Ver Perfil
Subir archivo .xls a base de datos!!!
« en: 17 Enero 2012, 16:35 pm »

saludos, le comento tengo este formulario

subirXLS.php

Código
  1. <form enctype="multipart/form-data" action="control.php" method="post" enctype="multipart/form-data" name="Archivo" id="Archivo">
  2.  
  3.  <table width="219" border="0">
  4.  
  5.    <tr>
  6.  
  7.      <td width="140"> Seleccionar Archivo &nbsp;</td>
  8.  
  9.      <td width="69">
  10.  
  11.  <label>
  12.  
  13.        <input type="file" name="file" id="file" />
  14.  
  15.      </label></td>
  16.  
  17.    </tr>
  18.  
  19.    <tr>
  20.  
  21.      <td>&nbsp;</td>
  22.  
  23.      <td><label>
  24.  
  25.        <input name="Archivo" type="submit" id="Archivo" value="Subir">
  26.  
  27.      </label></td>
  28.  
  29.    </tr>
  30.  
  31.  </table>
  32.  
  33. </form>
  34.  

y este otro

control.php

Código
  1. <?php
  2.  
  3. require_once 'Excel/reader.php';
  4.  
  5. require_once 'conexion.php';
  6.  
  7.  
  8.  
  9. $Archivo = $_FILES['file'];
  10.  
  11.  
  12.  
  13. $dato = new Spreadsheet_Excel_Reader();
  14.  
  15. $dato->read('$Archivo');
  16.  
  17. $celdas = $dato->sheets[0]['cells'];
  18.  
  19.  
  20.  
  21. for( $j=1; $j<15; $j++ )
  22.  
  23. {
  24.  
  25. $Nombre = $celdas[$j][1];
  26.  
  27. $Nota = $celdas[$j][2];
  28.  
  29.  
  30.  
  31. $consulta = mysql_query("select nombre from archivo where nombre = '$Nombre'",$conexion);
  32.  
  33. $resultado = mysql_num_rows($consulta);
  34.  
  35.  
  36.  
  37. if($resultado == 1 )
  38.  
  39.  { echo 'hola'; }
  40.  
  41. else
  42.  
  43.  {
  44.  
  45.   $sql = "INSERT INTO archivo (nombre,nota)";
  46.  
  47.   $sql.= "Values ('$Nombre','$Nota')";
  48.  
  49.   mysql_query($sql,$conexion) or die(mysql_error());  
  50.  
  51.  }
  52.  
  53. }
  54.  
  55. echo 'Proceso Exitoso!!! ';
  56.  
  57. ?>
  58.  


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 Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: Subir archivo .xls a base de datos!!!
« Respuesta #1 en: 17 Enero 2012, 17:24 pm »

Aca tenes un error en la sentencia SQL:

Código
  1. $sql = "INSERT INTO archivo (nombre,nota)";

Deberia ser:

Código
  1. $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 Desconectado

Mensajes: 282



Ver Perfil
Re: Subir archivo .xls a base de datos!!!
« Respuesta #2 en: 18 Enero 2012, 17:31 pm »

me sigue dando el mismo error..........

este es el error "The filename $Archivo is not readable"
.................
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Subir archivo .xls a base de datos!!!
« Respuesta #3 en: 19 Enero 2012, 01:58 am »

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 importantes
Aparte, del que ya te ha mencionado @El As del Club Paris,

Código
  1. $dato->read('$Archivo');

Usas comillas simples. La variable no se lee y queda como texto puro.
La solucion seria

Código
  1. $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 graves

No 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 Desconectado

Mensajes: 282



Ver Perfil
Re: Subir archivo .xls a base de datos!!!
« Respuesta #4 en: 21 Enero 2012, 03:29 am »

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.html
http://www.4shared.com/file/ViHrv1uf/reader.html

son 2 archivos,...........

les agradezco su ayuda de verdad...............
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Subir archivo .xls a base de datos!!!
« Respuesta #5 en: 21 Enero 2012, 03:38 am »

Hola,

Has probado con usar el tmp_name ?

Algo tipo así:

Código
  1. $Archivo = $_FILES["file"]["tmp_name"];
  2.  

PD: Si muestras los errores que te tira, quizás te podamos ayudar mas...

Saludos
En línea

01munrra

Desconectado Desconectado

Mensajes: 282



Ver Perfil
Re: Subir archivo .xls a base de datos!!!
« Respuesta #6 en: 21 Enero 2012, 04:10 am »

 ;-)  Gracias!!!!! ahora si me funciona............ no conocia esa forma,,,, que esta haciendo el tmp_name ???? ...........

 :huh: 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
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Subir archivo .xls a base de datos!!!
« Respuesta #7 en: 21 Enero 2012, 04:18 am »

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 Desconectado

Mensajes: 282



Ver Perfil
Re: Subir archivo .xls a base de datos!!!
« Respuesta #8 en: 21 Enero 2012, 04:49 am »

fijate como estoy haciendo el ciclo de lectura del archivo xls.:

Código
  1. $j = 1;
  2.  
  3. while( $celdas[$j][1] != "" )
  4. {
  5. $Nombre = $celdas[$j][1];
  6. $Nota = $celdas[$j][2];
  7.  
  8. $consulta = mysql_query("select nombre from archivo where nombre = '$Nombre'",$conexion);
  9. $resultado = mysql_num_rows($consulta);
  10.  
  11. if($resultado == 1 )
  12.  {  }
  13. else
  14.  {
  15.    $sql = "INSERT INTO archivo (nombre,nota) Values ('$Nombre','$Nota')";
  16.    mysql_query($sql,$conexion) or die(mysql_error());
  17.   }
  18. $j++;
  19. }
  20.  

y me lanza este error

Código
  1. Notice: Undefined offset: 20 in C:\wamp\www\Ejemplo Excel\control.php on line 12
  2. Proceso Exitoso!!!
  3.  

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
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Subir archivo .xls a base de datos!!!
« Respuesta #9 en: 21 Enero 2012, 05:14 am »

Hola,

Mmmm... lo del offset es porque te pasas de las celdas y ya no puede obtener ninguna...
Prueba así:

Código
  1. foreach($celdas as $celda){
  2.   $Nombre = $celda[1];
  3.   $Nota = $celda[2];
  4.  // resto del codigo SIN el j++
  5. }

Saludos
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como subir mi base de datos
PHP
ba-botas 7 5,389 Último mensaje 3 Agosto 2007, 19:03 pm
por programatrix
Subir imagen a base de datos
PHP
layker 2 3,643 Último mensaje 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 Último mensaje 28 Junio 2010, 04:16 am
por nicolas_cof
Subir una base de datos MySQL a un servidor
Desarrollo Web
Kefren 2 9,759 Último mensaje 4 Febrero 2011, 16:38 pm
por Kefren
Subir un fichero y relacionarlo en la base de datos
PHP
dimitrix 8 3,989 Último mensaje 17 Mayo 2011, 00:50 am
por RedZer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines