如何做到这一点?
我有一个名为 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/