Nueva pregunta

Pregunta:

Fecha: 09-10-2018 11:31:35 (En Español)

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.
Etiquetas: HTML - HTML5 - PHP - Web 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 02:45:59 Listo muchas gracias funciono perfectamente   Votos: 0 - 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
 
frjcbbae garagebible.com