phpmailer цикъл на колона и пропускане на NULL

Опитвам се да премина през 5 колони подред, за да изпратя имейл с PHPmailer. Всеки ред може да съдържа до 5 имейл адреса, но не всички го правят. Моят метод на цикъл работи, но ако съществува NULL, където няма наличен имейл адрес, имейлът не се изпраща. Как мога да накарам моя скрипт да игнорира NULL. Освен това има ли по-добър цикличен процес за колони?

    include("conn.php");
    require("class.phpmailer.php");
    // require("class.smtp.php");
    // require("class.pop3.php");
    $conn = mssql_connect($server, $user, $pass) or die("ERROR: Connection to MYSERVER failed");
    $select = mssql_select_db($database, $conn) or die("ERROR: Selecting database failed");

    $sql1 = "SELECT Email1 as email1, Email2 as email2, Email3 as email3, Email4 as email4, Email5 as email5 FROM $table2 where IPaddress='000.000.000.000'";
    $result1 = mssql_query($sql1);
    while ($row1 = mssql_fetch_assoc($result1)) {

      $EmailADD1 = $row1["email1"];
      $EmailADD2 = $row1["email2"];
      $EmailADD3 = $row1["email3"];
      $EmailADD4 = $row1["email4"];
      $EmailADD5 = $row1["email5"];


    //error_reporting(E_ALL);
    error_reporting(E_STRICT);
    ini_set('log_errors', 'On');
    ini_set('display_errors', 'On');
    date_default_timezone_set('America/Toronto');
    //include ("class.phpmailer.php");              
    //include("class.smtp.php");
    $mail = new PHPMailer();
    $mail->SetLanguage('en', 'C:\PHP\mail\language\\');
    $mail->IsSMTP();                                // set mailer to use SMTP
    $mail->Host = "[email protected]";  // specify main and backup server
    $mail->Port = 25;                               // set the SMTP port
    $mail->SMTPAuth = true;                         // turn on SMTP authentication
    $mail->Username = "me";            // SMTP username
    $mail->Password = "xxxxx";                    // SMTP password
    $mail->From = "[email protected]";
    $mail->FromName = "Mailer";
    //$body = $mail->getFile('contents.html');
    //$body = eregi_replace("[\]", '', $body);
    $mail->AddReplyTo("[email protected]", "JT");
    $mail->From = "[email protected]";
    //$mail->AddAddress("[email protected]", "JohnTest");
    $mail->FromName = "Me";
    $mail->Subject = "PHPMailer Test";
    $mail->Body = "Hi,
This is the HTML BODY
$IP"; //HTML Body $mail->WordWrap = 50; // set word wrap $mail->AddAddress($EmailADD1, "IPscoreBounceInfo1"); $mail->AddAddress($EmailADD2, "IPscoreBounceInfo2"); $mail->AddAddress($EmailADD3, "IPscoreBounceInfo3"); $mail->AddAddress($EmailADD4, "IPscoreBounceInfo4"); $mail->AddAddress($EmailADD5, "IPscoreBounceInfo5"); ...

person JT.    schedule 31.05.2011    source източник


Отговори (1)


Можете да разрешите това, като елиминирате NULL във вашата MySQL заявка от сървъра. Вместо това опитайте тази MySQL заявка, която трябва да елиминира NULL:

SELECT * FROM (
SELECT Email1 as email FROM $table2 where IPaddress='000.000.000.000'
UNION
SELECT Email2 as email FROM $table2 where IPaddress='000.000.000.000'
UNION
SELECT Email3 as email FROM $table2 where IPaddress='000.000.000.000'
UNION
SELECT Email4 as email FROM $table2 where IPaddress='000.000.000.000'
UNION
SELECT Email5 as email FROM $table2 where IPaddress='000.000.000.000'
) WHERE email IS NOT NULL
person landoncz    schedule 31.05.2011
comment
Благодаря, landoncz, това проработи... с малка модификация. ИЗБЕРЕТЕ Email1 като имейл ОТ IPreputation където IPaddress='000.000.000.000' и Email1 НЕ Е NULL UNION ИЗБЕРЕТЕ Email2 като имейл ОТ IPreputation където IPaddress='000.000.000.000' и Email2 НЕ Е NULL UNION ИЗБЕРЕТЕ Email3 като имейл ОТ IPreputation където IPaddress=' 000.000.000.000' и Email3 НЕ Е NULL UNION SELECT Email4 като имейл FROM IPreputation където IPaddress='000.000.000.000' и Email4 НЕ Е NULL UNION SELECT Email5 като имейл FROM IPreputation където IPaddress='000.000.000.000' и Email5 НЕ Е NU LL - person JT.; 01.06.2011