php - 确定论坛帖子所在的页面

标签 php mysql

如何做到这一点?

我有一个名为 posts 的表,其中包含某些主题的所有帖子,其中每页显示 10 个帖子。

所以我得到了这些表格:

id   | title
8976 | Determine which page a post is in

和帖子表

id | author | message | topic_id
1  |  jim   | bla bla | 8976
2  |  jake  | bla bla | 8976
3  |  bob   | bla bla | 8976
4  |  rob   | bla bla | 8976
5  |  john  | bla bla | 8976
6  |  aron  | bla bla | 8976
7  |  eric  | bla bla | 8976
8  |  brad  | bla bla | 8976
9  |  ken   | bla bla | 8976
10 | james  | bla bla | 8976
11 |  dan   | bla bla | 8976
12 |  stan  | bla bla | 8976
13 |  nick  | bla bla | 8976
14 | justin | bla bla | 8976
15 |  steve | bla bla | 8976
16 |  mark  | bla bla | 8976
17 |  billy | bla bla | 8976
18 |  harry | bla bla | 8976
19 |  david | bla bla | 8976
20 |  brian | bla bla | 8976

我为什么要这么做?将用户重定向到他们编辑的帖子。现在,如果它位于另一个页面然后是第一页,那么是的,他们不会被重定向到它。

而且我不会使用预制论坛。我做这个只是为了学习和娱乐,它可能永远不会上线。

我知道如何计算和获取行数,但后来弄清楚它在哪个页面上我不知道。我的数学很糟糕,而且我真的很糟糕。所以请帮助我朝正确的方向前进。

编辑

现在我正在使用:

$test = $db->query("SELECT COUNT(*) FROM posts WHERE topic_id = $topic_id AND id <= $id")->fetchColumn();

echo "Post is located on page: ".$test[0];

确实有效,但每个页面上的最后 2 篇文章都会获得当前页面 + 1 :/

如果说最后一页有一篇文章,它会说它在第 1 页

最佳答案

这是一个 mySQL 解决方案,用于使用 id=19 获取帖子的页码 。我正在考虑每页 10 个项目。

SELECT FLOOR(COUNT(id)/10) + 1
    FROM posts
    WHERE id < 19

关于php - 确定论坛帖子所在的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889242/

相关文章:

PHP 关键字搜索多个字段填充新输入

mysql - 如何修复 MySQL CREATE FUNCTION 查询?

php - 如何在 Symfony 2 的每个 URL 中设置 {locale}?

php - 将 PHP MySQL 查询输出转换为变量

php - MySQL中忽略字段字符串中的字符

python - 将 python int 解析为 Mysql unsigned TINYINT

php jdate 无法正常工作

php - 在多对多关系中排除标记故事中的标记列表

php - 如何在查询时删除solr中的动态字段后缀,如_i,_ txt?

MySQL:除 root 用户外,用户 'test' @'localhost' 的访问被拒绝(使用密码:YES)