Nueva pregunta

Pregunta:

Fecha: 09-11-2018 04:18:03 (En Español)

Como introducir los valores de un array en la variable MENSAJE de sendmail[Resuelta]

Hola tengo el siguiente problema estoy haciendo una consulta a la base de datos en donde me estoy trayendo varios valores de esa misma columna este es el codigo

include("conexion.php");
$proceso = $conexion->query("SELECT * FROM pedido order by id desc limit 5 ");
while ($resultado = mysqli_fetch_assoc($proceso)) {
$destinos=$resultado['destino'];
}
de este modo la Variable destino tiene 5 Valores: hospi1,hospi2,hospi3,hospi4,hospi5.
Ahora lo que quiero hacer es lo siguiente los 5 valores introducirlos dentro de la variable MENSAJE de SENDMAIL este es mi codigo de sendmail


<?php
session_start();
$correo="correo@gmail.com";

include("conexion.php");
$proceso = $conexion->query("SELECT * FROM pedido order by id desc limit 5 ");
while ($resultado = mysqli_fetch_assoc($proceso)) {
$destinos=$resultado['destino'];
}

$mensaje ='
<html>
<body>
<center>
<div>
<img src="https://i.postimg.cc/brb2wBVc/logo.jpg" style="width: 11%; height: 11%; float: left;">
</div>
<div>
<img src="https://i.postimg.cc/qq8X5qT3/logo2.png" style="width: 9%; height: 9%; float: right;">
</div>
<header style="width: 100%; height: 100%; padding: 10px; background-color: #DE0505; overflow: hidden;">

</header><br><br>

<h1>Solicitud de transporte Distribucion de dia Viernes.</h1>

<h2>Confirmar Recepcion</h2><br><br>
<form action="confirmarmail.php" method="POST">
<a href="192.168.1.92/page/confirmarmail.php"><input type="submit" name="confirmar" value="Confirmar"></a></form>

</center>
</body>
</html>';


$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($correo, "Solicitud de Transporte.",$mensaje,$cabeceras)
?>

de este modo que tengo el codigo en el mail solo me esta llegando solo un valor de los 5, hospi1 no los 5 valores yo los obtengo por medio de mysqli_fetch_assoc incluso lo imprimo en pantalla con un print y salen los 5 pero al momento de llevarlo dentro de la variable MENSAJE solo toma un valor

mi pregunta es la siguiente como puedo hacer que los valores guardados en la variable $destinos que son 5 pueda almacenarlo dentro de la variable MENSAJE de sendmail

gracias.
Etiquetas: MySQL - PHP Votos: 0 - Respuestas: 9 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 09-11-2018 11:03:24 Simplemente ocupa el while donde esta la linea de envio:

    
    while ($resultado = mysqli_fetch_assoc($proceso)) {
        $destinos = $resultado['destino'];
        mail($correo, "Solicitud de Transporte.",$destinos,$cabeceras);
    }
    
    


    eso suponiendo que en la variable $destinos por cada vuelta alla un solo email y no una cadena de texto de emails, ya alli habria que descomponer la cadena primero.
      Votos: 2 - Link respuesta
     
  • Fecha: 09-11-2018 13:53:56 Carlos si es buena la idea pero se podría saturar el servidor, yo enviaria eso a un cron job, si fuese para un proyecto de Correos masivos si es algo pequeño es perfecto   Votos: 1 - Link respuesta
     
  • Fecha: 10-11-2018 20:44:40 no creo que sea para corrreos masivos, igual no le serviria un cron, tendria que usar un servicio externo como mailjet por ejemplo si son emails masivos, incluso para este trabajo lo recomendaria, muy bueno el servicio, en todo caso, puede generar pausas entre correos para evitar la saturación   Votos: 2 - Link respuesta
     
  • Fecha: 14-11-2018 02:13:36 hola carlos gracias por tu respuesta yo efectivamente del modo que dices puedo ingresar la variable al mail pero el problema es que la variable debe contener 5 Valores y en el mail solo aparece 1 te muestro el codigo para aclarar mejor

    include ("conexion.php");
    $proceso = $conexion->query("SELECT * FROM pedido order by id desc limit 5 ");
    while ($resultado=mysqli_fetch_assoc($proceso)) {
    if ($resultado['estado']=='2') {
    $destinos=$resultado['destino'];
    print($destinos);
    }
    }
    mail($correo, "Solicitud de Transporte.",$destinos,$cabeceras);

    como pueden observar yo hago un print porque quiero ver que es lo que va a enviar y efectivamente la variables $destinos tiene 5 Valores pero cunado coloco la Variable $destino la coloco en mail solo lleva UN VALOR por que al llevar al mail la variable $destinos solo toma un solo valor y en print me salen los 5 últimos valores

    gracias por su atención quedo atento a su respuestas
      Votos: 0 - Link respuesta
     
  • Fecha: 14-11-2018 02:43:00 la verdad no entiendo que quieres hacer o como tienes almacenada la data, pues si colocas:

    $destinos = $resultado['destino']
    


    estas agregado el valor del campo destino de tu DB a la variable y este cambia con cada vuelta del while por así decirlo, ahora bien estas haciendo los print dentro del while lo que conlleva a mostrarte los 5 registros, pero no son 5 en realidad, si haces el print fuera del while te darás cuenta de que solo te mostrara el último, imagino que en el campo destino tienes almacenado un email por cada registro de la tabla.

    Debes aclarar lo que quieres hacer, pues si lo que quieres es enviar un email a los últimos 5 registrados en tu tabla, es como te lo coloque arriba, en otro caso, muestra como esta almacenada la data y vemos a partir de allí.
      Votos: 0 - Link respuesta
     
  • Fecha: 14-11-2018 03:31:10 lo que yo veo en su código es que no esta ejecutando la función mail las veces que necesita ya que esta fuera del bucle   Votos: 0 - Link respuesta
     
  • Fecha: 14-11-2018 05:52:02 ok voy a tratar de explicarme bien

    estos son los registros de la tabla de la base de datos

    Origen/ produc1 / produc2 /produc3
    hospi1-globulos-plaquetas-plasma
    hospi2-globulos-plaquetas-plasma
    hospi3-globulos-plaquetas-plasma
    hospi4-globulos-plaquetas-plasma
    hospi5-globulos-plaquetas-plasma


    yo quiero guardar los 5 valores de Origen que son hospi1 hasta hospi5 en una variable y enviarlos en un solo mail

    osea que en un mail diga tienes que visitar los siguiente hospitales: hospi1, hospi2,hospi3,hospi4,hospi5
    que en solo un mail se vaya la Variable $destinos con los 5 hospi

    entiendo lo que me dices carlos de que el while en cada vuelta cambia y toma el siguiente valor y asi lo tengo y funciona excelente pero también quiero que los datos almacenados en la variable $destinos vayan dirigidos al mismo correo

    hasta ahora yo tengo los 5 hospi en la variable $destinos y quiero poder enviar los 5 hospi en un solo correo a un usuario unico

    les dejo una copia del html para que tenga una idea de como quiero sea el mail



    <html>
    <body>
    <center>
    <div>
    <img src="logo.jpg" style="width: 11%; height: 11%; float: left;">
    </div>
    <div>
    <img src="logo2.png" style="width: 9%; height: 9%; float: right;">
    </div>
    <header style="width: 100%; height: 100%; padding: 10px; background-color: #DE0505; overflow: hidden;">

    </header><br><br>

    <h1>Producutos listo para llevar a los hospitales: hospi1,hospi2, hospi3, hospi4, hospi5.</h1>




    <h2>Confirmar Recepcion</h2><br><br>
    <form action="confirmarmail.php" method="POST">
    <a href=""><input type="submit" name="confirmar" value="Confirmar"></a>
    </form>

    </center>
    </body>
    </html>

    quedo atento a sus repuestas espero me aya explicado mejor
      Votos: 0 - Link respuesta
     
  • Fecha: 14-11-2018 06:24:34 Buen esa era la idea desde el principio que fueras dicho que estaba almacenado en el campo y como debia salir la estructura, solo has esto:

    $proceso = $conexion->query("SELECT * FROM pedido order by id desc limit 5 ");
        //Inicio la cadena  
        $destinos = "";
        while ($resultado=mysqli_fetch_assoc($proceso)) {
            if ($resultado['estado']=='2') {
            
                //Agrego elementos a la cadena
            $destinos .= $resultado['destino'].",";
    
        }
    }
    
    //Preparo el body del Email
    $body = '<html>
    <body>
    <center>
    <div>
    <img src="logo.jpg" style="width: 11%; height: 11%; float: left;">
    </div>
    <div>
    <img src="logo2.png" style="width: 9%; height: 9%; float: right;">
    </div>
    <header style="width: 100%; height: 100%; padding: 10px; background-color: #DE0505; overflow: hidden;">
    
    </header><br><br>
    
    <h1>Producutos listo para llevar a los hospitales: '.$destinos.'/h1>	
    
    
    
    
    <h2>Confirmar Recepcion</h2><br><br>
    <form action="confirmarmail.php" method="POST">
    <a href=""><input type="submit" name="confirmar" value="Confirmar"></a>
    </form>
    
    </center>
    </body>
    </html>';
    
    //Envío el Email
    mail($correo, "Solicitud de Transporte.",$body, $cabeceras);
    
      Votos: 1 - Link respuesta
     
  • Fecha: 14-11-2018 09:39:35 Listo era eso exactamente lo que queria Gracias carlos si no es mucha molestias si me puedes explicar el codigo de la variable $destinos que por lo que veo alli es que esta el modo de mostrar todos los datos almacenados en la variable esta parte

    $resultado['destino'].",";

    ese es el modo correcto de mostrar los datos de una variable cuando esta tiene mas de un dato?
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com