如何在更新MYSQL数据库的同时向列表发送电子邮件


how to send an emails to a list while updating MYSQL Database

我写了一个php脚本来发送电子邮件。在这个脚本中,它检查当前日期是否等于emailfly_date,并且电子邮件为=o。如果这满足要求,则会向用户发送电子邮件。这个脚本一次为一个用户工作。如果数据库有五条记录符合当前条件,则它只向最后一个id发送电子邮件。原因是什么?

id

250251252253

它将只向ID 253发送电子邮件,而不向其他人发送。

这是分枝杆菌

<?php
include_once 'dbconnect.php';

    $query = "SELECT ID,email, emailfly_date, CURRENT_DATE AS nowtime FROM xxx WHERE reqnum = '' AND email_sent = '0'";
    $result = mysql_query($query) or die(mysql_error());
    while ($row = mysql_fetch_array($result)) {
        $regid = $row['ID'];
        $activemail= $row['nowtime'];
        /*echo $regid . '<br />';
        echo $activemail. '<br />';*/
    }

    $query = mysql_query("SELECT ID, email, reqnum, emailfly_date, email_sent FROM xxx WHERE ID = '$regid' AND emailfly_date = '$activemail'");
    $rowdata = mysql_fetch_array($query);
        $ID = $rowdata['ID'];
        $email = $rowdata['email'];
        $reqnum = $rowdata['reqnum'];
        $emailfly_date = $rowdata['emailfly_date'];
        $email_sent = $rowdata['email_sent'];

        if ($reqnum != '') {
           /* echo "not sucess";*/
        } elseif ($email_sent == '1') {
           /* echo "email already sent";*/
        } elseif ($email_sent == '1' && $reqnum != '') {
           /* echo "no way to send";*/
        }
        elseif($email_sent == '0' && $reqnum == '' ){

            $ulink = "http://xxx.eewfewt.net/tttt/yyyy.php?ID=$regid";
            $to = $email;
            $subject = 'hoo'; // Give the email a subject
            $message = '
            Thanks for Using  Trial Version!
            If You Wish to Continue  with the Monthly Paid Package.
            ------------------------
            Click Below 
            Site Renewal link: ' . $ulink . '
            '.$emailfly_date.'
            ------------------------ ';

            $headers .= 'From:werwerwer.aaa.net' . "'r'n";
            $headers .= 'Bcc:ewrwerer.aaa.net' . "'r'n";
            mail($to, $subject, $message, $headers);
            $upadtequery = mysql_query("UPDATE xxx SET email_sent ='1' WHERE ID = '$regid'");

            echo "sucess";
        }
else{
   echo "bye";
}


?>

$query = mysql_query(.....bla...bla...到最后一个else{ echo "bye"; }将所有这些放在while循环中。另外,若从同一个表中提取数据,请尝试使用单个查询。mysql_()现在贬值了。所以尝试使用mysqli_()

include_one‘dbconnect.php’;

$query = "SELECT ID,email, emailfly_date, CURRENT_DATE AS nowtime FROM xxx WHERE id in ('250','251','252','253') AND email_sent = '0'";
$result = mysql_query($query) or die(mysql_error());
while($rowdata = mysql_fetch_array($result))
{
    $ID = $rowdata['ID'];
    $email = $rowdata['email'];
    $reqnum = $rowdata['reqnum'];
    $emailfly_date = $rowdata['emailfly_date'];
    $email_sent = $rowdata['email_sent'];
    $ulink = "http://xxx.eewfewt.net/tttt/yyyy.php?ID=$regid";
    $to = $email;
    $subject = 'hoo'; // Give the email a subject
    $message = '
    Thanks for Using  Trial Version!
    If You Wish to Continue  with the Monthly Paid Package.
    ------------------------
    Click Below 
    Site Renewal link: ' . $ulink . '
    '.$emailfly_date.'
    ------------------------ ';
    $headers .= 'From:werwerwer.aaa.net' . "'r'n";
    $headers .= 'Bcc:ewrwerer.aaa.net' . "'r'n";
    mail($to, $subject, $message, $headers);
    $upadtequery = mysql_query("UPDATE xxx SET email_sent ='1' WHERE ID = '$ID'");
    echo "sucess";
}