0

我有一个“用户评论”数据库,其中包含评论、用户 ID、真/假,如果他们想通过电子邮件发送。

我的问题是,如果用户对某个帖子发表 5 次评论,他们会在该数据库中出现 5 次,因此他们会收到 5 封相同的电子邮件。这是我的设置:

在数据库中查找希望通过电子邮件发送有关此评论的用户

$ab = $modx->newQuery('Comments');
$ab->leftJoin('modUserProfile','Profile',array('Profile.internalKey = Comments.author'));
$ab->leftJoin('Bulletin','Bulletin',array('Bulletin.id = Comments.bulletin_id'));
$ab->where(array('Comments.bulletin_id' => $bullId));
$ab->where(array('Comments.email' => 1));
$ab->select(array('Comments.*','Profile.fullname as fullname' , 'Profile.email as email' , 'Bulletin.title as title'));
$emailList = $modx->getCollection('Comments',$ab);

现在,给他们发电子邮件

foreach ($emailList as $e){
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->address('to',$e->email);
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_SUBJECT,'A new comment has been posted!');}

我应该使用什么来向用户发送电子邮件,以便他们只收到一封电子邮件,而不管他们发表了多少评论?如果以上内容不够清楚,请告诉我。谢谢!!

4

1 回答 1

2

我想你可以添加一个groupby....

$ab->groupby('email'); 

在您选择之后

于 2013-09-26T17:53:35.897 回答