Php 如何检查用户之前回复的帖子是否收到新的回复?
假设有10篇帖子,我已经回复了其中的7篇。当其他用户向帖子发送响应时,系统必须检查并告诉我是否有7篇帖子收到了新的响应。系统不会检查其他3个帖子,它只会检查我回复的7个帖子 步骤1-Php 如何检查用户之前回复的帖子是否收到新的回复?,php,mysql,Php,Mysql,假设有10篇帖子,我已经回复了其中的7篇。当其他用户向帖子发送响应时,系统必须检查并告诉我是否有7篇帖子收到了新的响应。系统不会检查其他3个帖子,它只会检查我回复的7个帖子 步骤1-从ResponseLive中选择帖子id,其中用户名=“{$myUsername}”//如果我在一篇特定的文章上发送了多个响应,这将输出许多重复的文章id。如何防止邮件id重复 第2步-在我得到7个帖子id之后,我需要得到7个帖子中最后一个回复的回复id。我是否需要使用数组来存储7个post id?或者我只需要在上一
从ResponseLive中选择帖子id,其中用户名=“{$myUsername}”代码>//如果我在一篇特定的文章上发送了多个响应,这将输出许多重复的文章id。如何防止邮件id重复
第2步-在我得到7个帖子id之后,我需要得到7个帖子中最后一个回复的回复id。我是否需要使用数组来存储7个post id?或者我只需要在上一个查询的while循环中编写此查询,如下所示:
$query3 = "SELECT id FROM responseslive WHERE username='{$myUsername}'";
$result3 = mysql_query($query3,$connection) or die (mysql_error());
confirm_query($result3);
while($postinfo = mysql_fetch_array($result3)){
$post-id= $postinfo['post-id'];
$query4 = "SELECT rsp-id FROM responseslive WHERE postid='{$post-id}' ORDER BY rsp-id DESC LIMIT 1";
$result4 = mysql_query($query4,$connection) or die (mysql_error());
confirm_query($result3);
while($rspinfo = mysql_fetch_array($result4)){
$last-rsp-id= $rspinfo['rsp-id'];
}
}
第3步-然后将当前的$last post id
与之前的$last post id
进行比较,如果当前的$last post id
大于之前的$last post id
,则告诉用户他之前已经响应过的帖子上有新的响应。对于第1步:
SELECT DISTINCT post-id FROM responsesLive WHERE username='{$myUsername}';
SELECT
postid, max(rsp-id)
FROM
responseslive
WHERE postid in (
SELECT DISTINCT post-id FROM responsesLive WHERE username='{$myUsername}');
GROUP BY
postid
这将只返回不同的post ID
对于第2步:
SELECT DISTINCT post-id FROM responsesLive WHERE username='{$myUsername}';
SELECT
postid, max(rsp-id)
FROM
responseslive
WHERE postid in (
SELECT DISTINCT post-id FROM responsesLive WHERE username='{$myUsername}');
GROUP BY
postid
这将为您和数组提供帖子ID和他们最后的回复ID。如果我删除“按帖子分组”是否可以?人们说,当你有或可以使用GroupBy时,不要使用DISTINCT,因为这会减慢查询速度……如果你想删除“GroupByPostId”,那么你也必须从SELECT中删除postid。这取决于你的结果中是否需要这个字段。我明白了。非常感谢你。你是如何发现你的答案有新的评论的?Stackoverflow给你发电子邮件通知你?我想Stackoverflow会在你有新的问题答案时给你发电子邮件。要查看新的评论,您可以查看页面左上角的内容,其中显示Stachexchange。一个红色圆圈出现,带有新的注释。