php - 如何检查用户之前回复的帖子是否收到新回复?

标签 php mysql

假设有 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/

相关文章:

javascript - 我的 Sequelize/Node 设置错误?我做错了什么吗?

MySQL 查询连接的唯一结果

php - 在 PHP 中用 $1 的详细说明替换子字符串

php - 为什么这个登录表单代码不起作用?

php - 我想在 MySQL 数据库中有一列自动计算 DATETIME 差异

php - 按邮政编码距离升序计算和排序用户的最快方法(也是最优化的)

mysql - 在一对多关系查询期间使用 LIMIT

php - SQL嵌套选择固定

php - 是否需要先按 2 列分组,再按 1 列分组进行 2 次查询?

php - 使用子字符串从动态变量中删除字符