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:
1º ¿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('')?
2º ¿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?
3º ¿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!
}
?>