PHPMailer从查询结果中填充电子邮件

时间:2014-04-20 07:30:37

标签: php arrays phpmailer

我正在尝试从查询返回的数组中填充PHPMailer中的电子邮件地址。

$query = 'SELECT u.id, u.first_name, u.last_name, u.email FROM users u INNER JOIN locations l ON (u.location_id = l.id) WHERE district_id = 8 GROUP BY id ORDER BY first_name, last_name ASC';

$result = mysqli_query($connection, $query);
if (!result) {
    die("Database query failed: " . mysqli_error($result));
}

$recipients = array();
while ($row = mysqli_fetch_assoc($result)) {
    $results[] = $row;
}

这给了我一个结果,如:

Array (
    [0] => Array ( [id] => 1 [first_name] => Jon [last_name] => Smith [email] => jon@domain.com )
    [1] => Array ( [id] => 3 [first_name] => Dave [last_name] => Virk [email] => dave@domain.com )
    [2] => Array ( [id] => 2 [first_name] => Chris [last_name] => West [email] => chris@domain.com )
)

但是对于使用这样的数组不熟悉我不知道如何为PHPMailer提取每个用户的名称和电子邮件。

我读了一个像这样的例子:

foreach($recipients as $email => $name) {
   $mail->AddAddress($email, $name);
}

我如何适应这个?

1 个答案:

答案 0 :(得分:0)

在你的情况下,它将是:

foreach($results as $row) {
    $mail->AddAddress($row['email'], $row['first_name'].' '.$row['last_name']);
}

您需要在方括号[]

中引用键值