PHP y MySQL Importar archivo de excel a cualquier tabla y cualquier columna de la base de datos
Posted by : ohkMalganis
on 12:09:00 p. m.
Tal como lo dice en el título, el código presentado a continuación nos va a permitir ingresar a una base de datos Mysql utilizando PHP desde un archivo creado en excel de extensión .csv (delimitado por comas).
Este código nos va a permitir ingresar la cantidad de datos necesarios a una o multiples tablas y a una o diferentes columnas sin requerir de alteraciones en el código fuente, de una base de datos sin requerimiento de configuraciones grandes o complicadas.
Para que este ejemplo este completo iniciaremos creando una tabla para nuestra base de datos en Mysql.
CREATE TABLE prueba; CREATE TABLE IF NOT EXISTS `estudiante` ( `id_estudiante` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, `nombre` varchar(100) NOT NULL, `apellidos` varchar(100) NOT NULL, `telefono` varchar(20) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Ahora que tenemos nuestra base de datos creada y nuestra tabla, revisaremos un poco el código de importación y sus dependencias para realizar una importación exitosa.
Como se puede apreciar, tenemos archivos de hojas de estilo, archivos de javascript y 6 archivos en PHP que realizan la carga. Es de vital importancia realizar una correcta configuración dentro de los archivos db.php y save.php.
db.php
Es importante notar que el archivo db.php cuenta con 170 líneas de código de las cuales no tocaremos ninguna otra que las lineas 8, 10 y 12.
En la linea 8 debemos poner el nombre del usuario de nuestra conexión a la base de datos.
En la linea 10 debemos poner el password de acceso a la base de datos relacionado a la cuenta.
En la linea 12 debemos poner el nombre de nuestra tabla que en este caso es “prueba“.
save.php
Lo único que requerimos modificar en el archivo save.php es a donde redireccionar nuestra página una vez que se haya ingresado los datos a la base de datos.
En la linea de código 149 tenemos un header(“Location: direccion_a_redireccionar.extension”); que esta en comentario, esta línea debemos quitar el comentario y poner la dirección a donde va a redireccionar, OJO hay que dejar en claro de que esta modificación no es obligatoria.
- Bueno, ahora solo necesitamos los datos a ingresar a la base de datos, estos deben estar en un archivo en excel que a posterior guardaremos con extensión .csv.
- Es de vital importancia que tengamos configurado correctamente nuestro windows a la opción de separador de miles en “,” (coma), para que el algoritmo no contenga errores. Aqui tenemos un pequeño manual que nos explica como debemos realizar esta configuración: Configurar el separador de miles
- Es muy importante que nuestros datos en el archivo en excel no lleven “,” la coma entre palabras.
- En caso de llevar la “,” coma entre palabras y que sea importante su conservación, en el panel de configuración de separador de miles debemos utilizar en vez de una “,” un punto y coma “;” y en el archivo vista.php en la linea 70 debemos cambiar $data = explode(“,”, fgets($fp)); por esto $data = explode(“;”, fgets($fp)); pero esto es solo necesario si quieres realizar la importación de manera avanzada y tienes conocimientos avanzados en PHP.
Datos de ejemplo:
Este es el archivo en excel que vamos a importar, como veran solo tiene 3 columnas y 5 filas.
Este archivo debemos guardarlo con .csv (delimitado por comas).
Siguiendo el ejemplo de las imagenes a continuación.
Y con esto tendremos guardado correctamente nuestro archivo.
Ahora vamos a hacerlo correr!
Si no puedes correr archivos del tipo .php debes crear un servidor en tu PC para eso te recomiendo que instales este archivo. XAMPP.
Los archivos del ejemplo los pondremos en esta dirección: C:\xampp\htdocs\
Y lo correremos abriendo el navegador en esta direccion: http://localhost/excel/ de preferencia utilicemos el google chrome, firefox, Baidu, Maxtho Nitro u Opera.
Y tendremos algo como esto:
Una pantalla muy sencilla donde debemos buscar el archivo .csv que acabamos de crear.
Y tendremos una vista similar a esta:
Podemos apreciar que nos demuestra un detalle de lo que estamos por importar.
Ahora debemos decirle donde va a ingresar los datos.
Donde dice “Seleccione”, seleccionamos la tabla y automáticamente nos aparecera debajo otro selector donde debemos especificar el campo donde ingresara.
Una vez seleccionados quedaran como en la siguiente imagen.
Y ahora debemos dar clic en el botón “Guardar Datos” y listo.
En mi caso, y porque no puse un lugar de redirección, este es el resultado:
Con esto finalizamos el ingreso.
Mencionar que podemos realizar el ingreso a diferentes tablas de la base de datos desde el mismo archivo y no importa la dimensión de nuestro archivo en excel.
Aqui tengo un ejemplo con un archivo diferente y con datos diferentes en una base de datos diferente.
Como se puede apreciar, se ingresan a diferentes tablas, diferentes columnas y en desorden y el resultado es el mismo:
Espero les haya servido de ayuda!
No olvides compartirlo en tus redes sociales si te ha gustado!
Importar datos a una base de datos Mysql con PHP, sin importar las tablas y los campos.
Archivos: Descargar archivos
Archivo en .CSV Descargar .CSV
OHK
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios:
Publicar un comentario