2013-07-26 62 views
2

如何做到這一點?確定論壇帖子在哪個頁面

我有一張名爲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頁

+0

你在這裏試過使用JOINS嗎? – Maximus2012

回答

1

這裏是一個MySQL的解決方案與id=19 獲取後的頁碼上。我正在考慮每頁10個itens。

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

哦,是的。 topic_id是必要的。您需要在where子句中通過topic_id進行過濾。 – hdvianna

1

假設你正在顯示由ID排序的帖子,你可以這樣做:

SELECT COUNT(*) FROM posts WHERE topic_id = 8976 AND id <= 15 

這會給你的職位與id 15例如。現在,你可以檢查這個位置是在哪一頁:

$page = floor($position/10); 

因此,在這個例子中,15後是第2頁