从数据库返回以前的数据

时间:2018-04-23 17:33:14

标签: php mysql limit

我制作了一个发帖评论应用,我想只显示2条评论,并允许用户点按“旧评论”#34;显示更多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),又名(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,依此类推......

0 个答案:

没有答案