Foros del Web » Programando para Internet » PHP »

cargar datos desde archivo excel e insertarlos en mysql

Estas en el tema de cargar datos desde archivo excel e insertarlos en mysql en el foro de PHP en Foros del Web. hola a todos, estoy trabajando en un proyecto de publicacion de notas, tengo realizado la parte de asignarle notas a los estudiantes, esto lo hace ...
  #1 (permalink)  
Antiguo 02/08/2010, 12:33
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 15 años
Puntos: 0
cargar datos desde archivo excel e insertarlos en mysql

hola a todos, estoy trabajando en un proyecto de publicacion de notas, tengo realizado la parte de asignarle notas a los estudiantes, esto lo hace cada docente en su grupo correspondiente, como lo tengo creado los docentes les asigna o ingresa las notas a los estudiantes que tienen a cargo, uno por uno, la idea es que si el docente tiene en un archivo excel las notas segun un esquema previamente ya creado, pueda subir dicho archivo y sea procesado de alguna forma en php y me inserte las notas que dentro de este archivo exista a una base de datos que cree, esto agilizaria la insercion de notas en el sitio....


no se si me hice entender...espero me puedan ayudar...

saludos...
  #2 (permalink)  
Antiguo 02/08/2010, 13:23
 
Fecha de Ingreso: mayo-2010
Mensajes: 51
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: cargar datos desde archivo excel e insertarlos en mysql

Hola mi estimado.

Lo que se me ocurre es que guarden el archivo como csv y tú crees un script que lea el archivo con el esquema que les hayas puesto.

Creo que hay una función en php que lee archivos csv y los convierte en un arreglo multidimensional.

Ya con todos los datos en una matriz de php solo es cuestión de un poco de talacha para que generes las querys para tu base de datos.

Saludos
  #3 (permalink)  
Antiguo 02/08/2010, 15:22
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 15 años
Puntos: 0
Respuesta: cargar datos desde archivo excel e insertarlos en mysql

gracias por tu respuesta, la pregunta ahora es donde encontrar dicho script, que es lo q estoy necesitando, o una pagina donde explique..

saludoss...
  #4 (permalink)  
Antiguo 02/08/2010, 15:37
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: cargar datos desde archivo excel e insertarlos en mysql

Tengo una rutina que realiza mas o menos lo que quieres.... La puedes descargar de http://sics.webcindario.com/wp-conte...deame3p_v5.rar

también tengo una versión mini pero para este caso la planilla excel debe tener exactamente igual los nombres de columnas a los campos mysql...

Cualquier duda a las ordenes
  #5 (permalink)  
Antiguo 02/08/2010, 18:36
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 15 años
Puntos: 0
Respuesta: cargar datos desde archivo excel e insertarlos en mysql

gracias portalmana, voy a ensayar, de todos modos si puedes facilitarme la version mini que dices, te estare altamente agradecido...

saludoss
  #6 (permalink)  
Antiguo 08/08/2010, 10:06
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 15 años
Puntos: 0
Respuesta: cargar datos desde archivo excel e insertarlos en mysql

hola nuevamente he venido ensayando de todo un poco y me tope con este codigo para subir desde archivo csv a mysql:

require_once("conexion/conexion.php");
$row = 1;
$fp = fopen ("libro1.csv","r");
while ($data = fgetcsv ($fp, 1000, ";"))
{
$num = count ($data);
print " <br>";
$row++;
echo "$row- ".$data[0].$data[1].$data[2].$data[3].$data[4].$data[5];
$insertar="INSERT INTO usuarios (id_alumno,nombres,apellidos,telefono,email,usuari o,contrasena) VALUES ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."','".$data[5]."','".$data[6]."')";
mysql_query($insertar);
}

fclose ($fp);


mi problema es que almacena en la base de datos tambien la primer linea que es el encabezado, como hago para evitar que almacene dicha linea..

saludos..
  #7 (permalink)  
Antiguo 08/08/2010, 11:28
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: cargar datos desde archivo excel e insertarlos en mysql

hace antes del while un
$data = fgetcsv ($fp, 1000, ";")
  #8 (permalink)  
Antiguo 08/08/2010, 11:33
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 15 años
Puntos: 0
Respuesta: cargar datos desde archivo excel e insertarlos en mysql

lo puse fuera del while y ya esta funcionando, muchas graciasss
  #9 (permalink)  
Antiguo 08/07/2013, 15:40
 
Fecha de Ingreso: julio-2013
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: cargar datos desde archivo excel e insertarlos en mysql

puse este codigo tal cual y me inserta me inserta mandandome este error:

diplucate enty for key primary y me inserta los 3 datos solo en el campo clave

<?php

include('conexion.inc');
$conexion=conecta();

$row = 1;
$fp = fopen ("sistemas2.csv","r");
//$data = fgetcsv ($fp, 1000, ";")
while ($data = fgetcsv ($fp, 1000, ";"))
{
$num = count ($data);
print " <br>";
$row++;
echo "$row.". $data[0]." ------------ ".$data[1]."-------".$data[2];
echo "$row- ".$data[0].$data[1].$data[2];
$sql="INSERT INTO reticula_sistemas (clave, materia, semestre) VALUES ('".$data[0]."','".$data[1]."','".$data[2]."')";
mysql_query($sql);

$res = mysql_query($sql, $conexion);
if ($res)
echo "AÑADIDO", mysql_affected_rows(), "registros a la base de datos<br>";
else
echo "ERROR al añadir los datos: ", mysql_error();

echo "<script languaje='javascript'> alert('SE INSERTO EL REGISTRO') </script>";
echo "<SCRIPT LANGUAGE='javascript'> location.href = '../base_datos/menu_bd.html'; </SCRIPT>";
}

fclose ($fp);
?>

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 21:37.