Php 从数据库返回以前的数据

Php 从数据库返回以前的数据,php,mysql,limit,Php,Mysql,Limit,我制作了一个帖子评论应用程序,我只想显示2条评论,并允许用户点击“旧评论”以显示更多的2条旧评论 问题是,每当我试图返回较旧的注释,而另一个用户最近刚刚被注释时,它都会返回无效值 id | comment | time | ---------|---------------|----------| 1 | "hello" | 10:30 | 2 | "test" | 11:00 | 4

我制作了一个帖子评论应用程序,我只想显示2条评论,并允许用户点击“旧评论”以显示更多的2条旧评论


问题是,每当我试图返回较旧的注释,而另一个用户最近刚刚被注释时,它都会返回无效值

id       | comment       | time     | 
---------|---------------|----------|
1        | "hello"       | 10:30    |
2        | "test"        | 11:00    |
4        | "test"        | 12:00    |
6        | "test"        | 13:00    |
PHP代码

$startIndex = 0;

$qry = $db->prepare('SELECT --comment datas--
  ORDER BY time DESC LIMIT : startIndex, 2');
$qry->bindParam(':startIndex', $startIndex, PDO::PARAM_INT);
$qry->execute();

$comments = $qry->fetchAll(PDO::FETCH_ASSOC);
$comments = array_reverse($comments);
假设我已经加载了最后的评论(ID 6,4)

然后有人加了一条评论

id       | comment       | time     | 
---------|---------------|----------|
1        | "hello"       | 10:30    |
2        | "test"        | 11:00    |
4        | "test"        | 12:00    |
6        | "test"        | 13:00    |
100      | "NEW"         | 20:00    |
现在,如果我想返回比(6,4),aka(2,1)旧的消息,我调用PHP文件

$startIndex = 2;

$qry = $db->prepare('SELECT --comment datas--
  ORDER BY time DESC LIMIT : startIndex, 2');
$qry->bindParam(':startIndex', $startIndex, PDO::PARAM_INT);
...
然后返回(ID 4,2):C


有没有办法坚持最后加载的注释,并返回较旧的注释

我如何定义$startIndex? 当用户第一次查看帖子时,该帖子的startIndex为0 评论。如果用户单击“以前的评论”,则为2 (0+2)并将其作为变量保存在应用程序中。当用户单击它时 再次,那么它将是2+2,依此类推


如何定义
$startIndex
?@chris85当用户第一次查看帖子时,评论的startIndex为0。如果用户单击“以前的评论”,那么它将是2(0+2),我将它作为变量保存在应用程序中。当用户再次单击它时,它将是2+2,依此类推。您为什么不存储他们最后看到的ID,然后您可以使用
where
选择他们最后看到的记录之前/之后的记录。您还可以在每次发布新评论时向$startIndex添加1是的,我知道我可以执行“where ID<:lastViewedCommentId”,但是再想想。。如果作为管理员,我添加了一条ID高于lastViewedCommentId的注释,该怎么办?