Цикл столбца 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 НЕ НУЖНО СОЕДИНЕНИЕ ВЫБЕРИТЕ Email2 как адрес электронной почты ИЗ IPreputation, где IPaddress = '000.000.000.000' и Электронная почта2 НЕ ЯВЛЯЕТСЯ NULL СОЕДИНЕНИЕМ ВЫБРАТЬ Email3 как адрес электронной почты ИЗ IPreputation, где IPaddress = ' 000.000.000.000 'и Email3 НЕ ЯВЛЯЕТСЯ NULL UNION ВЫБЕРИТЕ Email4 как адрес электронной почты FROM IPreputation, где IPaddress =' ​​000.000.000.000 'и Email4 НЕ ЯВЛЯЕТСЯ NULL UNION SELECT Email5 как адрес электронной почты FROM IPreputation, где IPaddress =' ​​000.000.000.000 'и Email5 НЕ НУЖЕН - person JT.; 01.06.2011