Pregunta:
Fecha: 09-10-2018 11:31:35
(En Español)
<?php
$destino="loquesea@gmail.com";
include("conexion.php");
$sql="SELECT * FROM pedido";
$resul=mysqli_query($conexion,$sql);
while ($form = mysqli_fetch_array($resul)) {
echo "$form[hospital1]";
echo "$form[hospital2]";
echo "$form[globulos]";
echo "$form[plaquetas]";
echo "$form[plasma]";
echo "$form[materiales]";
}
$contenido="";
mail($destino, "Solicitud",$contenido)
?>
Mi pregunta es como puedo sacar los valores de los echo para llevarlos a la variable $contenido que es el que voy a usar para enviar el correo, hasta este punto toda esta bien los datos esta allí lo que quiero es tomarlo y plasmarlo en un correo pero no puedo sacarlo del ciclo while cualquier ayuda es buena gracias. Votos: 0 - Respuestas: 4 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
Sacar valores de un While y colocarlos en una variable[Resuelta]
Hola tengo el siguiente codigo:<?php
$destino="loquesea@gmail.com";
include("conexion.php");
$sql="SELECT * FROM pedido";
$resul=mysqli_query($conexion,$sql);
while ($form = mysqli_fetch_array($resul)) {
echo "$form[hospital1]";
echo "$form[hospital2]";
echo "$form[globulos]";
echo "$form[plaquetas]";
echo "$form[plasma]";
echo "$form[materiales]";
}
$contenido="";
mail($destino, "Solicitud",$contenido)
?>
Mi pregunta es como puedo sacar los valores de los echo para llevarlos a la variable $contenido que es el que voy a usar para enviar el correo, hasta este punto toda esta bien los datos esta allí lo que quiero es tomarlo y plasmarlo en un correo pero no puedo sacarlo del ciclo while cualquier ayuda es buena gracias. Votos: 0 - Respuestas: 4 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 09-10-2018 12:15:14 inicializala antes del bucle y concatena los datos a ella:
$contenido = "<ul>"; while ($form = mysqli_fetch_array($resul)) { $contenido .= "<li>".$form["hospital1"]."</li>"; $contenido .= "<li>".$form["hospital2"]."</li>"; $contenido .= "<li>".$form["globulos"]."</li>"; $contenido .= "<li>".$form["plaquetas"]."</li>"; $contenido .= "<li>".$form["plasma"]."</li>"; $contenido .= "<li>".$form["materiales"]."</li>"; } $contenido .= "</ul>";
por otro lado sería bueno que validaras si la consulta arroja resultados o se ejecuta antes de intentar el envío del email.
No uses los echo si no vas a imprimir por pantalla, ya que solo vas a enviar es un Email, o imprime la variable $contenido luego del envío del Email en todo caso.
Saludos Votos: 1 - Link respuesta -
-
Fecha: 10-10-2018 13:52:52 Simplemente declaras $contenido como global y así al recorrer con fetch_array estarás enviando a esa variable una copia del arreglo de cada fila en cada iteración:
<?php // Correo de destino: $destino="loquesea@gmail.com"; // Conexión a la base de datos: include("conexion.php"); // Consulta SQL: $sql="SELECT * FROM pedido"; // Declaramos una varible GLOBAL: global $contenido; // Ejecutamos la consulta SQL: if( $resul=mysqli_query($conexion, $sql) ){ // Si no hay errores recorremos las filas iterando una a una: while ( $form = mysqli_fetch_array($resul) ) { // En cada iteración copiamos las columnas a nuestra variable global. $contenido[] = $form; } } // Si nuestra variable global $contenido tiene al menos un elemento: if( count( $contenido ) ){ // Generamos el HTML del correo electrónico: $HTML = "<b>hospital1:</b> <u>".$contenido["hospital1"]."</u>"; $HTML.= "<b>hospital2:</b> <u>".$contenido["hospital2"]."</u>"; $HTML.= "<b>globulos:</b> <u>".$contenido["globulos"]."</u>"; $HTML.= "<b>plaquetas:</b> <u>".$contenido["plaquetas"]."</u>"; $HTML.= "<b>plasma:</b> <u>".$contenido["plasma"]."</u>"; $HTML.= "<b>materiales:</b> <u>".$contenido["materiales"]."</u>"; } // Y enviamos el Email: if( mail($destino, "Solicitud", $HTML) ){ die( "Mensaje enviado:".PHP_EOL.PHP_EOL.$HTML ); } else { die( "No se pudo enviar el email:".PHP_EOL.PHP_EOL.$HTML ); }
Votos: 1 - Link respuesta -
Fecha: 11-10-2018 02:52:42 Gracias por la explicación entendi perfectamente es bastante lo que me me ahorro de codigo con la variable Global Gracias a todos por una excelente explicion Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión