我的数据库中有一个名为(event)的表中有一个列(名为user_email),此列包含电子邮件地址。我想获取所有这些电子邮件地址,并为所有这些地址发送一封电子邮件。 我尝试使用'for'loop但它只将电子邮件发送到一封电子邮件,我可能会以错误的方式使用,任何建议,
我的部分代码
$select="SELECT * FROM event WHERE event_title='$title'";
$query_select= mysql_query($select);
$row = mysql_fetch_array($result);
$email_to=$row["user_email"];
for($x=0;$x<count($row['user_email']);$x++){
@mail($email_to,$email_subject,$email_message,$header);
}
答案 0 :(得分:3)
你让它变得比它需要的更复杂。只需循环搜索结果并发送电子邮件:
$select="SELECT * FROM event WHERE event_title='$title'";
$result = mysql_query($select);
while ($row = mysql_fetch_array($result)) {
mail($row['user_email'],$email_subject,$email_message,$header);
}
你真的需要改进这一点,因为你没有检查邮件错误(甚至隐藏任何PHP试图告诉你)。
Please, don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。
答案 1 :(得分:0)
您需要while
循环。这样,它会迭代结果集中的所有行。我不得不猜测你的列名,所以你需要解决这个问题
while($row = mysql_fetch_assoc($query_select)) {
@mail($row['email_to'],$row['email_subject'],$row['email_message'],$header);
}