发送多个电子邮件行和多个产品列表在php


Send multiple email rows and multiple product list in php

我有一个表的产品(名称,价格)与10行和另一个表的客户(客户姓名和电子邮件)与50行mysql数据库。我想将我的产品列表(10行)发送给活动的客户。

使每个客户端将得到所有的10行产品作为一个电子邮件。我试图将产品和客户表放在一个循环中,但我只能发送一封电子邮件。

下面是我的代码:
$sql = mysqli_query($conn, "SELECT * FROM products");
$numRows = mysqli_num_rows($sql); 
$mail_body = '';
while($row = mysqli_fetch_array($sql)){
  $id = $row["pdid"];
  $price = $row["price"];
  $product = $row["product"];
  $mail_body = '';
}
$sql = mysqli_query($conn, "SELECT email FROM clients WHERE  type='Active'");
$numRows = mysqli_num_rows($sql); 
$email = '';
while($row = mysqli_fetch_array($sql)){
  $email = $row["email"];
  $name = $row["firstname"];
}
$subject = "New products";
$headers  = "From:info@welcare.com'r'n";
$headers .= "Content-type: text/html'r'n";
$to = $email;
$mail_result = mail($to, $subject, $mail_body, $headers);
if ($mail_result) {     
    echo 'ok';
}

下面的链接显示了如何循环多个产品行为一个静态电子邮件地址,但我希望能够将电子邮件发送到多个电子邮件客户端与循环产品行作为电子邮件的主体全部从mysql数据库表使用php。

在一封电子邮件中发送多行

有人能帮我吗

谢谢

您需要将对mail的调用放在遍历客户端的循环中:

...
$sql = mysqli_query($conn, "SELECT email FROM clients WHERE type='Active'");
$numRows = mysqli_num_rows($sql); 
$subject = "New products";
$headers  = "From:info@welcare.com'r'n";
$headers .= "Content-type: text/html'r'n";
while($row = mysqli_fetch_array($sql)){
   $email = $row["email"];
   $name = $row["firstname"];
   $mail_result = mail($email, $subject, $mail_body, $headers);
}