我已經構建了一個列出不同類別文章的簡單文章網站。我甚至實現了一個簡單的分頁系統,訪客可以瀏覽文章列表。但客戶有另一個要求。他們希望在閱讀文章時(不是在文章列表頁面上) - 應該有鏈接到文章列表中下一篇/上一篇文章的「下一篇文章」和「上一篇文章」鏈接。需要在基於php的CMS中添加下一篇前一篇文章導航器
考慮到列表可以按不同方式排序,因此閱讀單篇文章的下一個和上一個鏈接也應相應地反映如何實現。它有點像我認爲的迷你分頁。
是否有可能在單個sql查詢中獲得下一行和前一行,特別是在選擇單個元組時?
我已經構建了一個列出不同類別文章的簡單文章網站。我甚至實現了一個簡單的分頁系統,訪客可以瀏覽文章列表。但客戶有另一個要求。他們希望在閱讀文章時(不是在文章列表頁面上) - 應該有鏈接到文章列表中下一篇/上一篇文章的「下一篇文章」和「上一篇文章」鏈接。需要在基於php的CMS中添加下一篇前一篇文章導航器
考慮到列表可以按不同方式排序,因此閱讀單篇文章的下一個和上一個鏈接也應相應地反映如何實現。它有點像我認爲的迷你分頁。
是否有可能在單個sql查詢中獲得下一行和前一行,特別是在選擇單個元組時?
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後,你應該添加濾鏡,您使用的是在你的頁面 :)
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。
如果您正在尋找執行一切在一條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;
我正在尋找可以使用一個sql查詢執行的操作 – Ali 2011-01-16 06:49:42