2014-05-14 73 views
0

我目前正在創建一個論壇與PHP和SQL。 我的問題是如何將主題轉化爲正確的順序,假設每個頁面總共有200個和15個,並且頁面編號爲10.論壇 - 由多個頁面的最後一項活動排序

我無法選擇每個ID,因爲如果有人發帖其中一個主題的特定主題的時間戳 得到更新 - >最新的最上面。

第一頁類似的東西可能是好的:

select * from topics order by time desc limit 15 

但對於下一個頁面,我需要的最後一個話題之前,頁面上的時間戳。

如果我可以通過索引相對於時間戳順序選擇一個特定的表,而不需要實際的索引。

回答

1

我建議你檢查MySQL documentations的限額條款的第二個參數:

有兩個參數,第一個參數指定 第一行返回的偏移量,第二個指定的最大數量 行要返回。的初始行的偏移量爲0(未1)

語法:

[LIMIT {[offset,] row_count | row_count OFFSET offset}] 

實施例:

-- page 2: 
SELECT * FROM topics ORDER BY time DESC LIMIT 15, 15; 
SELECT * FROM topics ORDER BY time DESC LIMIT 15 OFFSET 15; 

-- page 3: 
SELECT * FROM topics ORDER BY time DESC LIMIT 30, 15; 
SELECT * FROM topics ORDER BY time DESC LIMIT 15 OFFSET 30; 

-- page n: 
SELECT * FROM topics ORDER BY time DESC LIMIT (n-1)*15, 15; 
SELECT * FROM topics ORDER BY time DESC LIMIT 15 OFFSET (n-1)*15; 
+0

我試圖最後一個和我不能它獲得與可變工作,只有數字常量。 ($ n-1)* 15 ..我錯過了一些引用或東西? – hendrik

+0

沒關係,只是先乘以n,然後在查詢中寫入$ n。 現在,它的工作原理,感謝您的快速回答。我想加薪,但我的名聲似乎太低 – hendrik