我有一个自定义的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);
}
}
但它会根据未付订单的数量多次向一位用户发送电子邮件。如何向只有一次未付订单的人发送电子邮件,以及如何在电子邮件中发送未付订单列表呢?
答案 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)
您可以使用IN
和DISTINCT
$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);
}