php - 如何在分页评论系统中找到评论的 "page"编号?

标签 php mysql pagination

<分区>

我有一个分页的评论系统,每页 10 个。我想为评论建立永久链接。我希望能够让脚本找出评论所在的页面,而不必指定页码,也不需要过多的查询或处理。因此,例如,指向第 5 页上的评论的链接将在第 5 页上打开浏览器并#scrolled 到评论(而不是在其自己的页面上显示评论)。

我曾想过使用 2 个 mysql 查询,一个是 SELECT all CommentId,然后是 php array_search 来查找结果中的位置,然后我可以计算出它在哪个页面上。第二个查询将获得所需的评论页面。这看起来效率很低,尤其是在有很多评论 ID 需要提取的情况下。

谁能提出更简单或更有效的方法?

最佳答案

这一切都可以用 SQL 轻松完成,假设 comment_id 是某种形式的自动递增数字,这应该返回确切的页面:

SELECT FLOOR(COUNT(*)/$comments_per_page) FROM COMMENTS 
   WHERE ENTRY_ID = $entry_id AND comment_id < $comment_id;

当然,这是假设“平淡的评论”(没有父子关系)。显然,$comments_per_page是每页显示的评论数(这可能只是一个常量),$entry_id是指评论所在的博客/论坛帖子是在下面制作的,$comment_id 是您要查找的评论。

关于php - 如何在分页评论系统中找到评论的 "page"编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285983/

相关文章:

mysql - 我们如何获取列的值用作内连接的表名?

php - 如何使用 codeigniter 框架从主键数组中获取查询

node.js - 在nodeJs中执行乘法时返回Nan

php - 使用自定义模板自定义Pagerfanta分页的布局

php - 通过 html 表单和 php 将外国 lang 数据插入 mysql db 表

php - 在php中将数组转换为json对象

mysql - 使用 Aulux Barcode 软件连接到 MySQL 数据库

javascript - 当记录达到10条以上时,Bootstrap中的DataTable不执行jQuery?

PHP Soap ssl 如何信任自签名证书

PHP 密码更新表单未写入数据库