Exportar datos en CSV es muy util ya que podemos hacer uso de estos datos en otros software, incluso en Excel o LibreOffice Spreadsheet.
En este articulo les voy a mostrar un ejemplo sobre como exportar datos de una base de datos mysql en CSV con PHP, de una manera fácil y rápida.
Vídeo explicación
En el siguiente vídeo les explico paso a paso como hacer la conexión a la base de datos, como escribir el código y el resultado.
Te invito a suscribirte a mi canal de youtube https://youtube.com/evilnapsis y ayudarnos a llegar a 100mil suscriptores, de antemano te agradezco 😉
Base de datos
La base de datos que vamos a usar en este ejemplo va a ser una base de datos sencilla, con una tabla de registros.
create database csvphp;
use csvphp;
create table registro(
id int not null auto_increment primary key,
nombre varchar(255),
apellidos varchar(255),
telefono varchar(255),
domicilio varchar(255),
created_at datetime
);
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("EEE","III","123","OOO", NOW());
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("UUU","QQQ","123","OOO", NOW());
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("JJJ","WWW","123","OOO", NOW());
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("XXX","RRR","123","OOO", NOW());
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("YYY","TTT","123","OOO", NOW());
En esta base de datos ya incluí algunos registros, que son los que vamos a exportar, ustedes pueden agregar mas registros o si quieren pueden agregar mas campos a la base de datos, etc.
Lo único que tienen que hacer es agregar esta base de datos con sus tablas y registros a su instalación de mysql.
Codigo
Ahora el código que vamos a usar en PHP es fácil.
<?php
$con = new mysqli("localhost","root","","csvphp");
$sql = "select * from registro";
$query = $con->query($sql);
if($query){
while($r = $query->fetch_object()){
echo $r->id.",";
echo $r->nombre.",";
echo $r->apellidos.",";
echo $r->telefono.",";
echo $r->domicilio.",";
echo $r->created_at."\n";
}
}
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=export.csv;');
?>
En la linea 2 tenemos la conexión a la base de datos, ahi ustedes pueden cambiar sus datos de conexión o nombre de la base de datos a la cual se van a conectar.
En la linea 4 tenemos la consulta SQL que vamos a ejecutar.
En las lineas 10-15 mostramos los datos del resultado, ya separados por comas, esto es muy importante, ya que tal como los mostremos asi se van a descargar.
Asi que pueden hacer pruebas de como va a ser el resultado, una vez que estén seguros del resultado entonces ya pueden agregar las 2 lineas de la función header.
Las ultimas 2 lineas del header nos sirven para poder descargar el adjunto con los datos que se muestran.
Y listo esto seria todo, espero les sirva de ayuda.
No se olviden de ver el video, darle like y suscribirse a mi canal de youtube.