
Preparamos la consulta SQL
SELECT dni,nombre,apellidos,telefono,email FROM clientes;

Preparamos nuestro fichero PHP
Paso 1: Nos conectamos a la Base de Datos
<?php
//Función para conectarnos con la BBDD
function conectar(){
// Rellenamos todos los datos para conectarnos a la BBDD
$x=new mysqli(
"", // URL
"", // Usuario
"", // Clave
"" // Nombre
);
//En caso de haber un error de conexión a la BBDD...
if ($x->connect_errno){
//Salimos de la conexión con el error
die ("Error: ".$x->mysqli_connect_errno().$x->mysqli_connect_error());
exit();
}
return $x;
}
?>
Paso 2: Añadimos la consulta SQL que hemos preparado
//Nos conectamos a SQL $c=conectar(); // Creamos la consulta que tenemos arriba para verla en PHP y en CSV $consulta=$c->query("SELECT dni,nombre,apellidos,telefono,email FROM clientes");
Paso 3: Preparamos el formulario de Exportar SQL a CSV (Excel) y la tabla para mostrar los registros.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="<?php echo $_SERVER[“PHP_SELF”]; ?>" method="post">
<button type="submit" id="export_data" name="exportarCSV" value="Export to excel" class="btn btn-info">Exportar a Excel (CSV)</button>
</form>
<table>
<thead>
<tr>
<th>DNI</th>
<th>Nombre</th>
<th>Apellidos</th>
<th>Teléfono</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<?php
while($cliente=$consulta->fetch_array()){
echo '<tr>';
echo '<td>'.$cliente['idtienda'].'</td>';
echo '<td>'.$cliente['nombre'].'</td>';
echo '<td>'.$cliente['direccion'].'</td>';
echo '<td></td>';
echo '<td></td>';
echo '</tr>';
}
?>
</tbody>
</table>
</body>
</html>
Paso 4: Llega la magia de exportar SQL a CSV.
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=".$ficheroExcel);
\n
:
echo "idtienda;nombre;direccion\n";
exit;
//Si hemos pulsado al botón de Exportar a Excel (CSV)...
if(isset($_POST["exportarCSV"])) {
if(!empty($consulta)) {
//El nombre del fichero tendrá el nombre de "usuarios_dia-mes-anio hora_minutos_segundos.csv"
$ficheroExcel="usuarios ".date("d-m-Y H_i_s").".csv";
//Indicamos que vamos a tratar con un fichero CSV
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=".$ficheroExcel);
// Vamos a mostrar en las celdas las columnas que queremos que aparezcan en la primera fila, separadas por ;
echo "idtienda;nombre;direccion\n";
// Recorremos la consulta SQL y lo mostramos
while($cliente=$consulta->fetch_array()){
echo $cliente['idtienda'].";";
echo $cliente['nombre'].";";
echo $cliente['direccion']."\n";
}
}else{
echo "No hay datos a exportar";
}
//Para que se cree el Excel correctamente, hay que añadir la sentencia exit;
exit;
}
Y así quedaría nuestro fichero CSV
<?php
//Función para conectarnos con la BBDD
function conectar(){
// Rellenamos todos los datos para conectarnos a la BBDD
$x=new mysqli(
"", // URL
"", // Usuario
"", // Clave
"" // Nombre
);
//En caso de haber un error de conexión a la BBDD...
if ($x->connect_errno){
//Salimos de la conexión con el error
die ("Error: ".$x->mysqli_connect_errno().$x->mysqli_connect_error());
exit();
}
return $x;
}
//Nos conectamos a SQL
$c=conectar();
// Creamos la consulta que va a compartir la visualización en PHP y en CSV
$consulta=$c->query("SELECT idtienda,nombre,direccion FROM tiendas order by idtienda desc limit 3 ");
//Si hemos pulsado al botón de Exportar a Excel (CSV)...
if(isset($_POST["exportarCSV"])) {
if(!empty($consulta)) {
//El nombre del fichero tendrá el nombre de "usuarios_dia-mes-anio hora_minutos_segundos.csv"
$ficheroExcel="usuarios ".date("d-m-Y H_i_s").".csv";
//Indicamos que vamos a tratar con un fichero CSV
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=".$ficheroExcel);
// Vamos a mostrar en las celdas las columnas que queremos que aparezcan en la primera fila, separadas por ;
echo "idtienda;nombre;direccion\n";
// Recorremos la consulta SQL y lo mostramos
while($cliente=$consulta->fetch_array()){
echo $cliente['idtienda'].";";
echo $cliente['nombre'].";";
echo $cliente['direccion']."\n";
}
}else{
echo "No hay datos a exportar";
}
//Para que se cree el Excel correctamente, hay que añadir la sentencia exit;
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="<?php echo $_SERVER[“PHP_SELF”]; ?>" method="post">
<button type="submit" id="export_data" name="exportarCSV" value="Export to excel" class="btn btn-info">Exportar a Excel (CSV)</button>
</form>
<table>
<thead>
<tr>
<th>DNI</th>
<th>Nombre</th>
<th>Apellidos</th>
<th>Teléfono</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<?php
while($cliente=$consulta->fetch_array()){
echo '<tr>';
echo '<td>'.$cliente['idtienda'].'</td>';
echo '<td>'.$cliente['nombre'].'</td>';
echo '<td>'.$cliente['direccion'].'</td>';
echo '<td></td>';
echo '<td></td>';
echo '</tr>';
}
?>
</tbody>
</table>
</body>
</html>

¿Te ha gustado el artículo?
Te recomendamos que eches un vistazo a los siguientes artículos relacionados con PHP , te podrán servir de gran ayuda 😉