2012-10-10 33 views
0

是的我很初学编码。PHP邮件函数多封电子邮件和mysql_fetch_array

所以我在做什么是第一次我得到了用户希望收到电子邮件

就像

$query = mysql_query("Select * FROM receivers WHERE id=$id") 
    or die(mysql_error()); 

while ($grabit = mysql_fetch_array($query)) { 

    $iAmReceiver = $grabit['email']; 
} 

因此,如果用户有一个电子邮件是将电子邮件地址(DB)只需将其存储在$iAmReceiver中,但如果用户有多个用于接收电子邮件的电子邮件地址,该怎么办?

而且未来我使用PHP的邮件功能来发送电子邮件,一个电子邮件地址,我可以简单地做

$ToEmail = "$iAmReceiver; 
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 

因此,在多个电子邮件地址发送邮件直接取决于我如何存储多个电子邮件地址?? ... ..像数组?

+0

在你的代码是在暗示,它可能是不太可能,你的查询返回多行的数据库模型,假设ID是你的主键或最不重要的。 –

+0

@ChristianBock实际上它是接收者的一个单独的表,并且我编码它的方式是,无论用户何时添加一个新的电子邮件地址,它都会在数据库中添加一个新的用户ID和电子邮件地址。不知道人们是否这样做,但不知何故它的工作..... – Leo

回答

2

我猜这样的事情应该工作

while ($grabit = mysql_fetch_array($query)) { 
    $receivers[] = $grabit['email']; 
} 

$ToEmail = implode("," , $receivers); 

也请考虑将高达mysqli_ *或PDO。 mysql_ *已弃用。

+0

意外---工作完美.... 如果这些愚蠢的蚊子不再吃我,我会自己做。 – Leo

+0

这是一个完美的秘诀,通过向每个人展示他们的电子邮件来完全惹恼你的用户。考虑让你的用户在BCC领域发送给你自己的电子邮件,或者准备好让一些非常愤怒的用户。 –

+0

@rickclader Oooops,....你只是试图发回电话给我的烦恼,... 但在我的情况下,其他电子邮件地址将是同一用户,当然他们不会介意,.... 。:P – Leo

1

您可以创建一个逗号分隔的电子邮件这样的:

while ($grabit = mysql_fetch_array($query)) { 
    $iAmReceiver .= $grabit['email'].','; 
} 

$iAmReceiver = rtrim($iAmReceiver,',') 

$ToEmail = "$iAmReceiver"; 

//You can pass comma separated email id as first argument of email if you want to send mail on multiple emails 

mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");