
Enviar consulta MYSQL a correo utilizando PHP
Publicado por Adrian (7 intervenciones) el 17/04/2018 22:59:33
Buenas tardes
Les cuento que valiendome de tutoriales y editanto porciones de código que encontré en Internet (no soy programador) hice un modesto desarrollo web (php+mysql) que imprime un query sql en pantalla y que lo arma para que se vea asi:

Este es el codigo de cierre.php
Lo que ahora deseo hacer, y aquí va la consulta a Uds., es enviar dicha pagina o query por e-mail y que se arme con tablas, de manera similar a la pagina de arriba (cierre.php) .
Encontré un código que empece a adaptar y que quedo así:
El correo llega como se ve a continuación.
Como verán tengo 2 problemas, el primero que solo se imprime la ultima carga en la base de datos, el segundo que el resultado llega sin armarse dentro de tablas.
Agradezco de antemano cualquier ayuda.
Muchas Gracias.

Les cuento que valiendome de tutoriales y editanto porciones de código que encontré en Internet (no soy programador) hice un modesto desarrollo web (php+mysql) que imprime un query sql en pantalla y que lo arma para que se vea asi:

Este es el codigo de cierre.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<html>
<b>CRONOGRAMA CIERRE DE TURNOS</>
<table style="margin: 0 auto;">
<td><font size="2"><b>Turno</b></font></td>
<td><font size="2"><b>TK Remedy</b></font></td>
<td><font size="2"><b>Monitoreo</b></font></td>
<td><font size="2"><b>Alarma</b></font></td>
<td><font size="2"><b>Ultimo Avance | Seguimiento</b></font></td>
<td><font size="2"><b>Estado</b></font></td>
<td><font size="2"><b>Fecha & Hora</b></font></td>
<td><font size="2"><b>ID</b></font></td>
</tr>
<style type='text/css'>
tr:nth-child(odd) {
background-color:#f2f2f2;
}
tr:nth-child(even) {
background-color:#fbfbfb;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
header('Content-Type: text/html; charset=utf-8');
$link = @mysql_connect("localhost", "usuario","clave")
or die ("Error al conectar a la base de datos.");
@mysql_select_db("base", $link)
or die ("Error al conectar a la base de datos.");
mysql_query("set names 'utf8'");
$query = "SELECT * FROM tabla WHERE estatus != 'C' ORDER by Fecha DESC";
$result = mysql_query($query);
$numero = 0;
while($row = mysql_fetch_array($result))
{
echo "<tr><td width=\"5%\"><font size=\"2\">" .
$row["turno"] . "</font></td>";
echo "<td width=\"10%\"><font size=\"2\">" .
$row["tkremedy"] . "</font></td>";
echo "<td width=\"10%\"><font size=\"2\">" .
$row["monitoreo"] . "</font></td>";
echo "<td width=\"18%\"><font size=\"2\">" .
$row["alarma"] . "</font></td>";
echo "<td width=\"26%\"><font size=\"2\">" .
$row["avance"] . "</font></td>";
echo "<td width=\"15%\"><font size=\"2\">" .
$row["status"] . "</font></td>";
echo "<td width=\"30%\"><font size=\"2\">" .
$row["Fecha"] . "</font></td>";
echo "<td width=\"2%\"><font size=\"2\">" .
$row["id"] . "</font></td>";
$numero++;
}
echo "<tr></tr><tr></tr><tr></tr><tr><td colspan=\"15\"><font size=\"2\"><b><u>Total Tickets</u>: " . $numero .
"</b></font></td></tr>";
mysql_free_result($result);
mysql_close($link);
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</table>
<form method="get" action="./index.htm">
<p style=text-align:center><input type="submit" value="Volver" />
</form>
</tr>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<DIV ALIGN=center>
<p style="text-align:center;margin-left:auto;margin-right:auto;"><span
style="font-size: 9pt">
2018
</br>
< Powered by Debian Linux server Apache2 PHP MySQL >
</br>
</DIV>
</html>
Lo que ahora deseo hacer, y aquí va la consulta a Uds., es enviar dicha pagina o query por e-mail y que se arme con tablas, de manera similar a la pagina de arriba (cierre.php) .
Encontré un código que empece a adaptar y que quedo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
$servername = "localhost";
$username = "usuario";
$password = "clave";
$dbname = "base";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM tabla";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$msg = "Turno: " . $row["turno"]. " - TK Remedy: " . $row["tkremedy"]. " -Monitoreo:" . $row["monitoreo"] . " -Alarma:" . $row["alarma"] . " -Avance:" . $row["avance"] . " -Status:" . $row["status"] ." -Fecha:" . $row["Fecha"] . "<br>";
$msg = wordwrap($msg,70);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From: Root <usuario@dominio.com>' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
}
mail("usuario@dominio.com","Cierre de turnos PF",$msg,$headers);
} else {
echo "0 results";
}
mysqli_close($conn);
?>
El correo llega como se ve a continuación.
Como verán tengo 2 problemas, el primero que solo se imprime la ultima carga en la base de datos, el segundo que el resultado llega sin armarse dentro de tablas.
Agradezco de antemano cualquier ayuda.
Muchas Gracias.

Valora esta pregunta


0