2013-05-13 93 views
0

如何在不提及ID的情況下調用下一個和上一個MySQL記錄?在MySQL查詢中調用下一個和前一個記錄

在我的表,我有以下記錄:

  • IDNO(自動遞增,主鍵)
  • 標題
  • 彈頭(唯一鍵)
  • 數據
  • 日期時間( Ymd H:我:S)

我有兩個頁面 - index.php和single.php。在index.php中,我的帖子被調用(每次10個),並按DateTime排序。根據URL變量slug並在我的數據庫中調用適當的記錄,每個條目鏈接到顯示單個帖子的single.php。我想,由於這些網頁構成了一個簡單的博客,因此請撥打下一篇文章和上一篇文章,仍然以DateTime的順序(下一篇將鏈接到更新的文章,以前的鏈接指向不太新近的文章)。有關如何做到這一點的任何建議?如果它是基於IDNO的,我可以這樣做,但由於它不是,帖子也不是按照DateTime順序自然發生的,而是在我的查詢中按照這種順序排列的,所以我不知所措。

我每次的single.php頁面上使用的查詢是:

SELECT * FROM site_posts WHERE slug = '".$_GET['SLUG']."'

我想要的鏈接將出現在該網頁上,所以我只包括查詢。

+0

你能告訴我們你的'Current'查詢之前,我們可以嘗試以幫助下一步和上一步? – 2013-05-13 15:43:42

+0

已添加。對於那個很抱歉。 – Nate 2013-05-13 15:50:35

+1

和FWIW,請確保在將其應用於數據庫查詢之前過濾用戶輸入。如果正確應用,PDO for PHP有助於添加一層安全性。過濾輸入,清理輸出。 – csi 2013-05-13 15:56:37

回答

1

對於接下來的文章中

SELECT * FROM site_posts WHERE DateTime > $currentPostDateTime 
    ORDER BY DateTime ASC LIMIT 0,1 


前一後

SELECT * FROM site_posts WHERE DateTime < $currentPostDateTime 
    ORDER BY DateTime DESC LIMIT 0,1 
+0

哦,你太棒了!我簡直不敢相信那麼簡單!我也會看看PDO,但我必須說實話,我有點新手。我可能會回到這裏,提出更多問題。 – Nate 2013-05-13 16:20:52

+0

雖然,我相信必須有一種方法可以在一個語句中獲取所有內容。 – vikingmaster 2013-05-13 17:08:09

相關問題