Foros del Web » Programando para Internet » PHP »

exportar desde Excel a mysql

Estas en el tema de exportar desde Excel a mysql en el foro de PHP en Foros del Web. Buenas, como ya está bien de pedir y preguntar, para una cosa que consigo resolver y se que es un poco lioso para muchos ( ...
  #1 (permalink)  
Antiguo 29/09/2006, 13:18
Avatar de Lolaloleitor  
Fecha de Ingreso: abril-2006
Mensajes: 22
Antigüedad: 18 años
Puntos: 0
exportar desde Excel a mysql

Buenas, como ya está bien de pedir y preguntar, para una cosa que consigo resolver y se que es un poco lioso para muchos ( ), os dejo aqui el codigo explicadito de como he conseguido volcar datos de un excel en una tabla de la base de datos.
Lo mas lioso era que no coincidian los campos, así que cree un nuevo archivo excel copiando y pegando solo los campos que necesitaba exportar.A continuación guarde el archivo como csv.
a continuacion el codigo:

function conectar() // esta os la sabeis
{
$dbhost="x";
$user="x";
$pass="x";
$db="x";

if(!($link=mysql_connect("$dbhost","$user","$pass" )))//Conexion con la base

{ echo "no se ha podido conectar a la base de datos $dbhost";
exit;}

if(! mysql_select_db("$db",$link) )
{echo "No se ha podido acceder a la bd $dbhost";
exit;

}
return $link;
}

// aquí empieza el tema:

function leerdatos(){

$fp = fopen ( "archivo.csv" , "r" ); //abrir el archivo

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

{ // Mientras hay líneas que leer...
$i = 0;
foreach($data as $row)
{$link=conectar();


$array=explode(";",$row); //meto en un array cada uno de los campos separandolos por los ;
//como se cuantos campos hay, creo una variable con cada posicion del array:

$nombre= $array[0];
$apellidos=$array[1] ;
$email=$array[2] ;

// en mi caso tenia que introducir la fecha de insercion
$date=date("Y-m-d H:i:s");

//introduzco los datos en la base de datos:

$result = mysql_query ("INSERT INTO tabla (date , nombre , apellidos , email ) VALUES ( '$date' ,'$nombre' , '$apellidos' , '$email' )",$link);

}

}
fclose ( $fp );
}

leerdatos(); //llamamos a la funcion

Subimos el archivo por ftp y lo abrimos.
A mi al menos me ha funcionado, espero que os sirva a todos y que os inspire nuevas ideas

Un saludo a todos
  #2 (permalink)  
Antiguo 01/10/2006, 06:11
Avatar de XYON126  
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años, 1 mes
Puntos: 0
ayuda

Hola lolaloleitor!

Necesito tu ayuda, he probado tu script y no consigo hacerlo correr te indico los pasos dados:1, Edito tu script como excel_import.php e incluyo mis datos dentro de este asi:


Cita:
<?php

function conectar() // esta os la sabeis
{
$dbhost="localhost";
$user="root";
$pass="root";
$db="osCommercebd";
no listo todo el codigo, solo lo cambiado.

2.Lo guardo en la carpeta del localhost y desde el navegador ejecuto el tipico :

Cita:
/localhost/excel_import.php
Y el error que me sale aproximadamente unas 50 lineas es este:

Cita:
Warning: fopen(archivo.csv) [function.fopen]: failed to open stream: No such file or directory in C:\wamp\www\excel_import.php on line 35

Warning: fgetcsv() expects parameter 1 to be resource, boolean given in C:\wamp\www\excel_import.php on line 37

Warning: Invalid argument supplied for foreach() in C:\wamp\www\excel_import.php on line 41

Warning: fgetcsv() expects parameter 1 to be resource, boolean given in C:\wamp\www\excel_import.php on line 37

Warning: Invalid argument supplied for foreach() in C:\wamp\www\excel_import.php on line 41 . . . (hasta 50 veces )



Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\excel_import.php on line 37

¿Sabes que es lo que estoy haciendo mal?

Gracias por adelantado.
  #3 (permalink)  
Antiguo 02/10/2006, 11:52
Avatar de Lolaloleitor  
Fecha de Ingreso: abril-2006
Mensajes: 22
Antigüedad: 18 años
Puntos: 0
A ver, centremonos en el primer error:
Warning: fopen(archivo.csv) [function.fopen]: failed to open stream: No such file or directory in C:\wamp\www\excel_import.php on line 35

Donde pone archivo.csv, tienes que poner el nombre del archivo que quieres abrir, es decir el excel que guardaste como archivo csv, no te lo abre y no puede leertelo.Hasta que no lo cambies no sabremos si lo demas funciona
suerte!!
  #4 (permalink)  
Antiguo 02/10/2006, 13:49
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 4 meses
Puntos: 33
hola

para mi k el problema esta aki /localhost/excel_import.php si tienes el archivo en la misma carpeta k el excel_import.php entonces no necesitas ponerle /localhost/ basta solo con excel_import.php checalo y me dices
  #5 (permalink)  
Antiguo 23/10/2006, 09:36
 
Fecha de Ingreso: octubre-2006
Mensajes: 24
Antigüedad: 17 años, 6 meses
Puntos: 0
como podria usar este mismo script pero llamar al archivo desde una forma , osea mandar llamar el archivo con un boton examinar y seleccionar el archivo??

O sea, en esta linea:
$fp = fopen ( "archivo.csv" , "r" );


como mando llamar el archivo si éste proviene de una forma??

Última edición por zero01; 23/10/2006 a las 09:44
  #6 (permalink)  
Antiguo 23/10/2006, 11:00
 
Fecha de Ingreso: octubre-2006
Mensajes: 24
Antigüedad: 17 años, 6 meses
Puntos: 0
nadie sabe?
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 09:40.