Tengo un problema para enviar emails a través de una llamada a la base de datos con un While.
Si hago lo que voy a poner ahora pero con If en lugar de While, sí me funciona. Pero no sé porqué no me funciona con el While. De momento me envía sólo 1 e-mail (el que corresponde al primer campo) y la última parte del Update tampoco la realiza (sí lo hacía con el IF).
Éste es el código, algo poco complejo, yo creo:
Código PHP:
...
include('conexioninclude.php');
mysql_set_charset('utf8');
$registros=mysql_query("SELECT mail, name, password, codigo FROM alert WHERE status='on' AND language1='$language2' AND language2='$language1' AND way LIKE '%$way%' ORDER BY codigo",$conexion)or
die("Problems at selectt:".mysql_error());
require("class.phpmailer.php");
$mail = new PHPMailer();
while($reg=mysql_fetch_array($registros))
{
$mailu=$reg['mail'];
$namee=$reg['name'];
$password=$reg['password'];
$codigo=$reg['codigo'];
$mail->IsSMTP();
$mail->Port = 465;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "xxxxx";
$mail->Password = "xxxxxx"; // SMTP password
$webmaster_email = "xxxxxx"; //Reply to this email ID
$email="xxxxx"; // Recipients email ID
$name="Admin"; // Recipient's name
$mail->From = "xxxxxx";
$mail->FromName = "Sharinglanguage.com";
$mail->AddAddress($mailu,$namee);
$mail->AddReplyTo(xxxxxx,"Webmaster");
$mail->WordWrap = 50; // set word wrap
$mail->SetLanguage("en","/php/language/");
$mail->AddAttachment("/var/tmp/file.tar.gz");
$mail->AddAttachment("/tmp/image.jpg", "phone.jpg");
$mail->AddAttachment("image.jpg", "phone.jpg");
$mail->IsHTML(true); // send as HTML
$mail->Subject = "xxxxxxxxx";
$foto= "imagess/bonito.jpg";
$mensaje='<font-color="#559999">
<img src="'. $foto .'" width="600"><br /><br />
Hello '.$namee.',<br /><br />
xxxxxxxxxxxxxxxx .<br /><br />
Sincerely yours</font>';
$mail->MsgHTML($mensaje);
if(!$mail->Send())
{
print<<<HERE
message wasn't sent;
HERE;
}
else
{
$registros2=mysql_query("SELECT yep FROM vamos WHERE password='$password'",$conexion)or
die("Problems at selectt:".mysql_error());
if($reg=mysql_fetch_array($registros))
{
$yep=$reg['yep']; // se trata de un campo tipo INT
$saw=$yep+1;
$registros3=mysql_query("UPDATE vamos
SET yep='$saw'
WHERE password='$password'",$conexion)or
die("Proble8uhims with selectttt:".mysql_error());
}
print<<<HERE
success!;
HERE;
}
...
Bueno, agradecería un cable.
¡Un saludo!