elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:54  


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.

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

Desconectado Desconectado

Mensajes: 75



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

saludos, le comento tengo este formulario

subirXLS.php

Código
<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 &nbsp;</td>
 
     <td width="69">
 
 <label>
 
       <input type="file" name="file" id="file" />
 
     </label></td>
 
   </tr>
 
   <tr>
 
     <td>&nbsp;</td>
 
     <td><label>
 
       <input name="Archivo" type="submit" id="Archivo" value="Subir">
 
     </label></td>
 
   </tr>
 
 </table>
 
</form>
 

y este otro

control.php

Código
<?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);
 
$resultado = mysql_num_rows($consulta);
 
 
 
if($resultado == 1 )
 
 { echo 'hola'; }
 
else
 
 {
 
  $sql = "INSERT INTO archivo (nombre,nota)";
 
  $sql.= "Values ('$Nombre','$Nota')";
 
  mysql_query($sql,$conexion) or die(mysql_error());  
 
 }
 
}
 
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
El As del Club Paris


Desconectado Desconectado

Mensajes: 1.816


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

Aca tenes un error en la sentencia SQL:

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

Deberia ser:

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

sudo suck --mycock -o force
01munrra

Desconectado Desconectado

Mensajes: 75



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

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

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


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


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

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
$dato->read('$Archivo');

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

Código
$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: 75



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

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 | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


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

Hola,

Has probado con usar el tmp_name ?

Algo tipo así:

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

Mensajes: 75



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

 ;-)  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 | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


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

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: 75



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

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

Código
$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);
$resultado = mysql_num_rows($consulta);
 
if($resultado == 1 )
 {  }
else
 {
   $sql = "INSERT INTO archivo (nombre,nota) Values ('$Nombre','$Nota')";
   mysql_query($sql,$conexion) or die(mysql_error());
  }
$j++;
}
 

y me lanza este error

Código
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 por 01munrra » En línea
drvy | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


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

Hola,

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

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

Saludos
En línea
01munrra

Desconectado Desconectado

Mensajes: 75



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

ahora si funciona....... y tienes razon es mas rapido que con el for o while,,,,,,, drvy | BSM GRACIAS de veras por tu gran aporte !!!!  ;-) ;-) ;-) ;-) ;-).........
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Subir base de datos o importar una base de datos????
Desarrollo Web
cimi 1 1,471 Último mensaje 23 Junio 2005, 09:43
por el-brujo
Como subir mi base de datos
PHP
ba-botas 7 2,720 Último mensaje 3 Agosto 2007, 19:03
por Rey11
Subir imagen a base de datos
PHP
layker 2 1,372 Último mensaje 12 Mayo 2008, 06:31
por Syphroot
Subir una base de datos MySQL a un servidor
Desarrollo Web
Kefren 2 2,360 Último mensaje 4 Febrero 2011, 16:38
por Kefren
Subir un fichero y relacionarlo en la base de datos
PHP
dimitrix 8 608 Último mensaje 17 Mayo 2011, 00:50
por RedZer
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines