【问题标题】:Send multiple email rows and multiple product list in php在php中发送多个电子邮件行和多个产品列表
【发布时间】:2016-11-09 09:46:48
【问题描述】:

我有一个包含 10 行的产品表(名称、价格)和另一个包含 mysql 数据库的 50 行客户表(客户名称和电子邮件)。我想将我的产品列表(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';
}

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

Send multiple rows in one email

谁能帮帮我

谢谢

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您需要将对 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);
    }
    

    【讨论】:

    • 很好的答案老兄:) 显然我正在搜索这样的代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    相关资源
    最近更新 更多