0

コメント、userId、true/false をメールで送信するかどうかを保持する「ユーザー コメント」のデータベースがあります。

私の問題は、ユーザーが投稿に 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!');}

ユーザーが行ったコメントの量に関係なく 1 つの電子メールのみを受け取るように、ユーザーに電子メールを送信するにはどうすればよいですか? 上記が十分に明確でない場合はお知らせください。ありがとうございました!!

4

1 に答える 1

2

groupbyを追加できると思います....

$ab->groupby('email'); 

あなたの選択後

于 2013-09-26T17:53:35.897 に答える