Php 通过电子邮件通知用户新的评论
我有一个博客,当用户评论一篇文章时,我想在每篇文章中添加一个功能“通过电子邮件通知我新的评论” 我正在使用PHP和MySQL 我正在考虑向对某些帖子发表评论的用户发送一封邮件,并选中复选框“通过电子邮件通知我新评论”,查询如下:Php 通过电子邮件通知用户新的评论,php,mysql,Php,Mysql,我有一个博客,当用户评论一篇文章时,我想在每篇文章中添加一个功能“通过电子邮件通知我新的评论” 我正在使用PHP和MySQL 我正在考虑向对某些帖子发表评论的用户发送一封邮件,并选中复选框“通过电子邮件通知我新评论”,查询如下: $query = mysql_query("SELECT COUNT(post_id) AS NumberOfComments FROM comments WHERE post_id = $post_id"); $row = mysql_fetch_assoc($qu
$query = mysql_query("SELECT COUNT(post_id) AS NumberOfComments FROM comments WHERE post_id = $post_id");
$row = mysql_fetch_assoc($query);
if($row['NumberOfComments '] > $NumberOfComments){
mail("someone@example.com","subject","message");
}
但是如果有人从帖子中删除了一条评论,并且添加了一条新的评论,那么评论的数量将是相同的,并且不会发送邮件。关于如何更好地进行查询,您有什么想法吗?在将注释插入数据库时发送此邮件,这样您就不需要额外的查询了 编辑: 因此,您将希望获得通知的用户的信息存储在数据库中 使用带有
id
user\u id
post\u id
的表,我将其命名为comment\u notify
然后你可以做类似的事情
// Insert comment to database
$userWhoWantGetNotified = mysql_query("SELECT * FROM comment_notify WHERE post_id = $postId");
while ($entry = mysql_fetch_assoc($userWhoWantGetNotified )) {
$userId = $entry["user_id"];
// get email from user_id
mail(..);
}
这取决于何时通知用户 他们是否希望收到每一条评论的通知?然后,发布评论的功能也会发送通知。任何时候发表评论时,请检查是否通知用户并通知他们 他们是否希望定期(每天、每周等)通知存在新评论?那你还是不想数一数。在这种情况下,您需要检查是否存在新记录。有两种方法可以做到这一点:
永远不要假设信息来自不包含该信息的数据。存储您需要知道的信息。可以使用更多上下文,以便正确地通知初学者:)查询是什么样子,我如何将邮件发送给选中“通过电子邮件通知我新评论”复选框的特定人员?我只想用一种简单的方式在添加新评论/评论时通知用户-无论添加了多少评论,都只需一次通知。我还是一个初学者。如果我知道帖子中评论的最后一个id,那么我如何获得最后一个评论id?如果我知道帖子中评论的最后一个id,那么查询会是什么样子?@user3740970:那么,定期通知?这正是我在这个答案中描述的。只需记录上次通知用户的内容(时间戳或标识符),然后检查此后是否添加了新行。如果是这样,那么就有了新的记录。例如,如果上次通知用户注释ID为245,最大注释ID现在为257,则会有新注释。@user3740970:
从注释中选择最大(ID)