使用php将电子邮件发送到从数据库检索的电子邮件地址

时间:2015-05-08 01:57:25

标签: php email for-loop data-retrieval

我的数据库中有一个名为(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);



    }

2 个答案:

答案 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,并使用PDOMySQLi - 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);
}