Re: Anpassa WHILE och optimera coden
Först: Jag tror du rapporterar skickandet av ett mail för mycket! Det borde nog vara $mail_num = 0; före while-slingan. (Då har du ju inte skickat något.) Om du också byter plats på utskriften och uppräkningsraden enligt nedan så funkar det.
Huruvida detta blir en optimal lösning vill jag inte gå in på, men... som en första ansats.
$sql = "SELECT user_mail FROM mail_db
WHERE mail_list_ID='$mail_list_ID' AND
customer_ID='$customer_id'";
$result = mysql_query("$sql",$db);
$rows = mysql_num_rows($result);
$mail_num = 0;
$curr_chunk = 1;
while ($mail_num <= $rows) {
$stop = 20 * $curr_chunk;
while (mail_num < $stopp && $myrow = mysql_fetch_array($result)) {
$email = $myrow["user_mail"];
mail($email, $subject, $mail_text_send, $headers);
$mail_num++;
echo "$mail_num. ".$email."<br>";
}
$curr_chunk++; //<-- Redigerat in glömd rad!!!
$proc = round($mail_num / $rows * 100, 2); //För två decimaler
echo "Nu är $proc % klara!"
}
print ("<br><br><strong>Nu är det klart!<br>
Mailen har nu skickats till $rows e-postadresser som finns i maillistan.</strong>");
RED: Glömd rad, se koden