假设有 10 个帖子,我已对其中 7 个帖子发送了回复。当其他用户对帖子发送回复时,系统必须检查并告诉我是否有 7 个帖子收到新回复。系统不会检查其他3个帖子,只会检查我已回复的7个帖子。
第1步 - 从responseLive中选择post-id WHERE username='{$myUsername}';
//如果我向特定帖子发送多个回复,这将输出许多重复的post-id。如何防止post-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}';
这将仅返回不同的帖子 ID。
第 2 步:
SELECT
postid, max(rsp-id)
FROM
responseslive
WHERE postid in (
SELECT DISTINCT post-id FROM responsesLive WHERE username='{$myUsername}');
GROUP BY
postid
这将为您提供包含帖子 ID 及其最后回复 ID 的数组。
关于php - 如何检查用户之前回复的帖子是否收到新回复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267492/