使用未付订单发送邮件给用户php

时间:2016-07-05 07:03:41

标签: php mysql

我有一个自定义的php电子商务网站。

其中我有两张名为order& amp;用户。

现在我需要向订单状态为0的用户发送电子邮件。

用户ID存储在用户表中。

这是我的PHP代码:

<?php
   $query = mysqli_query($link, "SELECT * FROM dg_order WHERE state=0");
    while ($row   = mysqli_fetch_assoc($query)) {
        $uid   = $row['uid'];
        $users = mysqli_query($link, "SELECT * FROM dg_users WHERE uid='$uid'");
        while ($rw    = mysqli_fetch_assoc($users)) {
            $em = $rw['email'];

            mail($em, $subject, $message, $headers);
        }
    }

但它会根据未付订单的数量多次向一位用户发送电子邮件。如何向只有一次未付订单的人发送电子邮件,以及如何在电子邮件中发送未付订单列表呢?

2 个答案:

答案 0 :(得分:1)

请注意,这只会向每个用户发送一封电子邮件,无论他们有多少未完成的订单......

 $query = "
  SELECT DISTINCT u.email
             FROM dg_order o
             JOIN dg_users u
               ON u.uid = o.uid
            WHERE o.state = 0;
            ";

 $result = mysqli_query($link,$query);

    while($row = mysqli_fetch_assoc($result))
    {
        $em = $row['email'];
        mail($em, $subject, $message, $headers);
    }

答案 1 :(得分:0)

您可以使用INDISTINCT

修改代码
$users = mysqli_query($link, "SELECT email FROM dg_users WHERE uid IN(SELECT DISTINCT uid FROM dg_order WHERE state=0)");
while ($rw = mysqli_fetch_assoc($users)) {
    $em = $rw['email'];
    mail($em, $subject, $message, $headers);
}