viernes, 5 de mayo de 2017

Consultas de datos MySQL enviadas a Excel

Para este ejercicio usaremos una tabla de datos existente, y el resultado lo veremos en Excel.  Para poder hacer esto vamos a generar dos archivos, uno para hace la búsqueda de los datos que deseamos y otro para enviarlos a Excel.

Archivo No. 1

Nombre del archivo:  buscar.php

<html>
<head>
<title>Tareas - La plataforma del profe. Lima</title>
<meta http-equiv="Content-Language" content="es" />
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="Tareas">
</head>
<body>
<form action="detalleexcel.php" method='post'>
<table border=0 align=center width=50%>
<tr>
<td style="font-family: 'Century Gothic'; font-size: 1.1em;" align=center>
<br>
Buscar comentario por:
<select name=tipo style="font-family: 'Century Gothic'; font-size: 1.1em; color: #585858">
<option value=Nombre>Nombre</option>
<option value=Telefono>Teléfono</option>
</select><br>
Término para buscar:
<input type="text" name="termino" size="60">
<input type=submit value=Buscar style="font-family: 'Century Gothic'; font-size: 1.1em;">
</td>
</tr>
</table>
</form>
</body>
</html>

Archivo No. 2

Nombre del archivo:  detalleexcel.php

<?
$tipo = $_POST['tipo'];
$termino = $_POST['termino'];


//Configuramos el encabezado del archivo nuevo de Excel
$return = '';

$return .= "<H1>Colegio IPTCE</H1>
<span style='color: red;'>IPTCE, como un segundo hogar!</span>
<br><br>
<h3 style='color: #212121;'>REPORTE DE COMENTARIOS
</h3>
<div align='center' style='font-family: tahoma; font-size: 12px;'>";

//Usamos la función require para conectar con el servidor

require("conectar.php");

//Hacemos la consulta condicionada a tipo y término

$consultar = mysql_query("SELECT * FROM nombre_tabla WHERE $tipo LIKE '%".$termino."%'");
$respuesta = mysql_query($consultar);

//Componemos el encabezado de la tabla

@$no_respuestas = mysql_num_rows($respuesta);
@$return .= "<table border=1 width=100%><tr align=center class=tr valign=buttom>";
@$return .= "<td>No.</td><td>Nombre</td><td>E-mail</td><td>Asunto</td><td>Comentario</td></tr>";

//Creamos un ciclo for mostrar todos los datos de la tabla

for($i=1; $i<=$no_respuestas; $i++) {
$reg = mysql_fetch_array($respuesta);

$idcomentario = $reg['IdComentario'];
$nombre = $reg['Nombre'];
$email = $reg['Email'];
$asunto = $reg['Asunto'];
$comentario = $reg['Comentario'];

@$var1 = "<tr style='font-size: 12px;'><td align=center>$idcomentario</td><td>$nombre</td><td>$email</td><td>$asunto</td><td align=right>$comentario</td></tr>";
@$return .= $var1;
}

// Agregamos a la variable $return (que ya contiene el encabezado del nuevo archivo) todos los datos que consultamos en el ciclo anterior

@$return .= $var2;
@$return .= $var3;
@$return .= "</table>";

//Agregue esta línea para resolver el problema de la tildes en Excel, funciona muy bien.

@$return = utf8_decode($return);

//Enviamos el archivo a excel

header("Content-type: application/vnd-ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=comentarios.xls");

echo $return;
?>

Espero que esta publicación le ayude mucho.  Hasta la próxima.

No hay comentarios:

Publicar un comentario