Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/11/2012, 09:44
MikLoN
 
Fecha de Ingreso: octubre-2011
Mensajes: 6
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Mostrar un listado de usuarios y enviarlo por email para cada discoteca

¡Hola! Creo que es la primera vez que consulto algo en este foro. Espero que puedan ayudarme..

Actualmente me funciona la idea básica que es recoger y mostrar, línea a línea, el nombre y apellidos de todos los usuarios que hay en la tabla USUARIO_DISCO y que tengan el UD_DIA_ELEGIDO en "viernes" y el UD_DISCOTECA con un "nombre concreto". Acto seguido llamo a la clase PHPMailer, configuro los parámetros y ahí empiezan los problemillas... El envío del email lo hace bien, pero todavía sin el contenido deseado...

Mis dudas:

¿Cómo puedo guardar el listado de usuarios que me devuelve la consulta, a través del array, en $body, y asi tener correctamente el contenido del mensaje en $mail->MsgHTML('')?

¿Cómo podría enviar el listado de los usuarios (de cada discoteca) a los emails correspondientes, que estan almacenados en otra tabla: DISCOTECA.D_EMAIL? ¿Tengo que meter el actual bucle while dentro de otro bucle (foreach o while) o cómo?

¿Habría algún problema si meto la SELECT de los usuarios dentro del bucle y que vaya cambiando su valor de UD_DISCOTECA (el nombre de esta) por un $array que contenga todos los nombres de las discotecas (SELECT D_NOMBRE FROM DISCOTECA)?

El resultado esperado sería que recorriera una a una las discotecas (mediante D_NOMBRE ó D_ID) haciendo cada vez el listado y el envío por email de los usuarios a la dirección correspondiente.

Tengo las 2 tablas relacionadas mediante: DISCOTECA(D_ID) y USUARIO_DISCO(UD_ID_DISCO). Osea, que en las 2 existe una columna con idéntico contenido, por si hiciera falta...

¡Una ayudita no me vendría nada mal, por favorrr! :D

Este es el código actual, que +/- funciona:
Código PHP:
<?php 

    mysql_connect
("localhost","user","pass");
    
    
mysql_select_db("name");
    
    
$sql="SELECT UD_NOMBRE, UD_APELLIDOS FROM USUARIO_DISCO WHERE UD_DIA_ELEGIDO = 'viernes' AND UD_DISCOTECA = 'Animas'";
    
    
mysql_query("SET NAMES utf8");  
      
    if (!
$resul=mysql_query($sql)) {
        echo 
"No se ha podido realizar la consulta<br>";
        echo 
mysql_error();
        exit;
    }
    
    while (
$arr_resul=mysql_fetch_array($resul)){
    
        
$nombre $arr_resul["UD_NOMBRE"];
        
$apellidos $arr_resul["UD_APELLIDOS"];
        
        echo 
$nombre.' '.$apellidos.'<br>';
    }
    
    
mysql_free_result($resul);
    
    
mysql_close();
 

    require_once(
'includes/class.phpmailer.php');
    
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

    
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
    
    
$mail->IsSMTP(); // telling the class to use SMTP
    
    
try {
      
$mail->Host       "smtp.dominio.es"// SMTP server
      
$mail->SMTPDebug  2;                     // enables SMTP debug information (for testing)
      
$mail->SMTPAuth   true;                  // enable SMTP authentication
      
$mail->Host       "smtp.dominio.es";     // sets the SMTP server
      
$mail->Port       587;                    // set the SMTP port for the server
      
$mail->Username   "[email protected]"// SMTP account username
      
$mail->Password   "pass";        // SMTP account password
      
$mail->AddAddress('[email protected]''Receptor');
      
$mail->SetFrom('[email protected]''Envíos');
      
$mail->Subject 'Listado';
      
$mail->AltBody 'Para ver el mensaje, utiliza un visor de emails HTML...'// optional - MsgHTML will create an alternate automatically
      
$mail->MsgHTML('');
      
$mail->Send();
      echo 
"Mensaje enviado correctamente</p>\n";
    } catch (
phpmailerException $e) {
      echo 
$e->errorMessage(); //Pretty error messages from PHPMailer
    
} catch (Exception $e) {
      echo 
$e->getMessage(); //Boring error messages from anything else!
    
}  

?>
¡Need help! ¡Gracias de antemano y un saludo! :)

Última edición por MikLoN; 23/11/2012 a las 10:13