Foros del Web » Programando para Internet » PHP »

exportar de excel a mysql

Estas en el tema de exportar de excel a mysql en el foro de PHP en Foros del Web. Hola buenas, tengo una pagina web con su base de datos en mysql, pero para llenarla debo establecer una conexion con una tabla en excel ...
  #1 (permalink)  
Antiguo 01/07/2010, 14:08
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
exportar de excel a mysql

Hola buenas, tengo una pagina web con su base de datos en mysql, pero para llenarla debo establecer una conexion con una tabla en excel que contiene los registros y deseo hacer un script en php para que lo haga automaticamente, estuve investigando y lo primero que se hace es pasar el archivo de excel a cvs, eso ya lo hice pero el codigo que estoy utlilizando no me funciona porque al llenar la tabla coloca es 0 u otros valores en algunos campos y el resto en blanco


Código PHP:
include("conexion.php"); 

$conexion obtenerConexion(); 

function 
leerdatos(){
    
$fp fopen ("SISE.csv","r");
while ( 
$data fgetcsv $fp ,3000";" )) 
{
$i 0;
foreach(
$data as $row)
{
$array=explode(";",$row);
$nu_solc=$array[0]; 
$nu_solc_intr=$array[1]; 
$ds_proy_evnt=$array[2]; 
$fe_promt_cte=$array[3]; 
$fe_promt_cte_ajus=$array[4]; 
$co_cte=$array[5]; 
$nb_empr=$array[6]; 
$ds_t_cte=$array[7]; 
$ds_uni_negc=$array[8]; 
$ds_serv=$array[9]; 
$instl=$array[10]; 
$co_central_orig=$array[11]; 
$instl_intr=$array[12]; 
$ds_confg=$array[13]; 
$ds_uso=$array[14]; 
$ds_clas_serv=$array[15]; 
$ds_red=$array[16]; 
$fe_ini_oper=$array[17]; 
$fe_fin_oper=$array[18]; 
$durope=$array[19]; 
$ds_edo_oper=$array[20]; 
$t_actv=$array[21]; 
$t_actor=$array[22]; 
$nb_centr_trab=$array[23]; 
$ds_t_actv=$array[24]; 
$fe_ini=$array[25]; 
$fe_fin=$array[26]; 
$ds_edo_actv=$array[27]; 
$nb_usr=$array[28]; 
$id_actv=$array[29]; 
$duract=$array[30]; 
$visto_por=$array[31]; 
$ds_sfase=$array[32]; 
$ds_fase=$array[33]; 
$ds_usr1=$array[34]; 
$t_lugar=$array[35]; 
$nb_lugar=$array[36]; 
$calle_av=$array[37]; 
$casa_edf=$array[38]; 
$apto_ofc=$array[39]; 
$urbn=$array[40]; 
$prrq=$array[41]; 
$munc=$array[42]; 
$nb_cdad=$array[43]; 
$nb_edo=$array[44];
    
$sql="INSERT INTO tbuzon (nu_solc,nu_solc_intr,ds_proy_evnt,fe_promt_cte,fe_promt_cte_ajus,co_cte,nb_empr,ds_t_cte,ds_uni_negc,ds_serv,instl,co_central_orig,instl_intr,ds_confg,ds_uso,ds_clas_serv,ds_red,fe_ini_oper,fe_fin_oper,durope,ds_edo_oper,t_actv,t_actor,nb_centr_trab,ds_t_actv,fe_ini,fe_fin,ds_edo_actv,nb_usr,id_actv,duract,visto_por,ds_sfase,ds_fase,ds_usr1,t_lugar,nb_lugar,calle_av,casa_edf,apto_ofc,urbn,prrq,munc,nb_cdad,nb_edo) VALUES ( '$nu_solc','$nu_solc_intr','$ds_proy_evnt','$fe_promt_cte','$fe_promt_cte_ajus','$co_cte','$nb_empr','$ds_t_cte','$ds_uni_negc','$ds_serv','$instl','$co_central_orig','$instl_intr','$ds_confg','$ds_uso','$ds_clas_serv','$ds_red','$fe_ini_oper','$fe_fin_oper','$durope','$ds_edo_oper','$t_actv','$t_actor','$nb_centr_trab','$ds_t_actv','$fe_ini','$fe_fin','$ds_edo_actv','$nb_usr','$id_actv','$duract','$visto_por','$ds_sfase','$ds_fase','$ds_usr1','$t_lugar','$nb_lugar','$calle_av','$casa_edf','$apto_ofc','$urbn','$prrq','$munc','$nb_cdad','$nb_edo')";
$querymysql_query($sql$conexion)or die (mysql_error());  
}
}
fclose ($fp);
}
leerdatos(); 
gracias

Última edición por gabymar; 01/07/2010 a las 14:25
  #2 (permalink)  
Antiguo 01/07/2010, 14:27
 
Fecha de Ingreso: septiembre-2009
Mensajes: 68
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: exportar de excel a mysql

Diria que tiene pinta de ser algo con la conexion de la db... revisala... aun asi podrias reducir bastante ese codigo.

Edit:

Vale, ahora que has arreglado el warning del mysql_query(), deberias realmente hacer las pruebas con un .csv con menos columnas y reducir codigo.

Última edición por albert_23; 01/07/2010 a las 14:33
  #3 (permalink)  
Antiguo 01/07/2010, 18:29
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: exportar de excel a mysql

Necesariamente tienes que hacerlo con un script?

Porque en el caso de phpmyadmin puedes subir los csv directamente a la tabla que quieres...
  #4 (permalink)  
Antiguo 02/07/2010, 07:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: exportar de excel a mysql

hola gracias no puedo reducir las columnas porque esa informacion viene de otra base de datos y se maneja toda esa data, y no puedo subirlo a phpmyadmin directamente porque es un sistema que cada dos o tres minutos debe estar actualizando y cargando del archivo de excel a la base de datos y por eso necesito hacerlo automatico,pero ya encontre otro codigo mas corto y que si me funciona, pero como registro tambien me coloca los nombres de los campos como puedo hacer para que no me lo coloque, y para que no me duplique los registros.. gracias..

Código PHP:
include("conexion.php"); 

$conexion obtenerConexion(); 

$row 2;
$fp fopen ("SISE.csv","r");
while (
$data fgetcsv ($fp3000";"))
{
$num count ($data);
print 
" <br>";
$row++;
$insertar="INSERT INTO tbuzon (nu_solc,nu_solc_intr,ds_proy_evnt,fe_promt_cte,fe_promt_cte_ajus,co_cte,nb_empr,ds_t_cte,ds_uni_negc,ds_serv,instl,co_central_orig,instl_intr,ds_confg,ds_uso,ds_clas_serv,ds_red,fe_ini_oper,fe_fin_oper,durope,ds_edo_oper,t_actv,t_actor,nb_centr_trab,ds_t_actv,fe_ini,fe_fin,ds_edo_actv,nb_usr,id_actv,duract,visto_por,ds_sfase,ds_fase,ds_usr,t_lugar,nb_lugar,calle_av,casa_edf,apto_ofc,urbn,prrq,munc,nb_cdad,nb_edo) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$data[27]','$data[28]','$data[29]','$data[30]','$data[31]','$data[32]','$data[33]','$data[34]','$data[35]','$data[36]','$data[37]','$data[38]','$data[39]','$data[40]','$data[41]','$data[42]','$data[43]','$data[44]')";

$query=mysql_query($insertar)or die (mysql_error()); 
}
fclose ($fp); 

Última edición por gabymar; 02/07/2010 a las 09:06
  #5 (permalink)  
Antiguo 02/07/2010, 17:28
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: exportar de excel a mysql

Supongo que te refieres a que el csv te trae un header con los campos, lo que yo haría es preguntar o saltarme el header. Si lo que te refieres es que cada campo te viene antecedido de del nombre del campo usaría "expresiones regulares" para eliminarlo. De todas formas si puedes colocar un vaciado pequeño del archivo para verlo sería mejor...
  #6 (permalink)  
Antiguo 06/07/2010, 07:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: exportar de excel a mysql

Hola gracias egepe lo que hice fue colocar una condicion para que me elimine ese campo que me aparecia con delete, y utilice truncate para vaciar la tabla despues de realizar varios procesos con esos registros y evito la duplicidad...

Etiquetas: excel, mysql
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 15:17.