2011-01-07 45 views
1

我已經構建了一個列出不同類別文章的簡單文章網站。我甚至實現了一個簡單的分頁系統,訪客可以瀏覽文章列表。但客戶有另一個要求。他們希望在閱讀文章時(不是在文章列表頁面上) - 應該有鏈接到文章列表中下一篇/上一篇文章的「下一篇文章」和「上一篇文章」鏈接。需要在基於php的CMS中添加下一篇前一篇文章導航器

考慮到列表可以按不同方式排序,因此閱讀單篇文章的下一個和上一個鏈接也應相應地反映如何實現。它有點像我認爲的迷你分頁。

是否有可能在單個sql查詢中獲得下一行和前一行,特別是在選擇單個元組時?

回答

2
Previous ID: 
SELECT id FROM $mytable WHERE id < $id ORDER BY ID DESC LIMIT 1; 
Next ID: 
SELECT id FROM $mytable WHERE id > $id ORDER BY ID ASC LIMIT 1; 

並且$ id後,你應該添加濾鏡,您使用的是在你的頁面 :)

+0

我正在尋找可以使用一個sql查詢執行的操作 – Ali 2011-01-16 06:49:42

0
SELECT id FROM $mytable WHERE id < $id ORDER BY ID DESC LIMIT 1; 
UNION 
SELECT id FROM $mytable WHERE id = $id ORDER BY ID ASC LIMIT 1; 
UNION 
SELECT id FROM $mytable WHERE id > $id ORDER BY ID ASC LIMIT 1; 

你會得到所有三個ID。

0

如果您正在尋找執行一切在一條SQL行中,同時考慮到列表可以按不同方式排序,您將不得不使用SESSION/COOKIE來存儲提交時的SQL行。然後,您可以在WHERE之後附加標準,以便在@Eddsstudio下面建議的內容:

SELECT id FROM $mytable WHERE id < $id ORDER BY ID DESC LIMIT 1; 
Next ID: 
SELECT id FROM $mytable WHERE id > $id ORDER BY ID ASC LIMIT 1; 
相關問題