當我從mysql中拖出行並將它們展開時,我將行總數除以例如。 20所以我得到的頁數。
但是,當我查看一行的詳細信息時,我想回到同一頁面的鏈接。 (例如,第33頁上的唯一ID爲1451的行。 <a href="?show=rows&page=33">Back</a>
)從mysql計算頁面x0
如何確定在mysql中哪些頁面是唯一ID?
*** UPDATE *
該溶液可以在這裏找到:
MySQL get row position in ORDER BY
當我從mysql中拖出行並將它們展開時,我將行總數除以例如。 20所以我得到的頁數。
但是,當我查看一行的詳細信息時,我想回到同一頁面的鏈接。 (例如,第33頁上的唯一ID爲1451的行。 <a href="?show=rows&page=33">Back</a>
)從mysql計算頁面x0
如何確定在mysql中哪些頁面是唯一ID?
*** UPDATE *
該溶液可以在這裏找到:
MySQL get row position in ORDER BY
假設您顯示由ID排序行,下面的查詢將返回位置:
SELECT COUNT(*) position FROM tbl WHERE uid < 1451
有了這個位置,你可以使用公式計算頁:1 + floor($position/20)
。 如果數據中存在一些空白,則查詢是必要的。如果你沒有任何間隙使用公式:1 + floor(($id - 1)/20)
它工作的方式很好,但我使用order.column.create,我已經做了一些手動導入相同的日期。所以我不得不考慮更遠,我從這裏http://stackoverflow.com/questions/3614666/mysql-get-row-position-in-order-by – 2011-12-28 12:09:49
的ceil()
功能和一些部門是所有你需要:
$pagenumber = ceil($id/$resultsperpage);
問題是@ N.B。說。像這樣的'1,2,3,1500,1501,2900,2920'這樣的順序將會給出不正確的結果。 – 2011-12-28 12:18:17
長話短說:你不能做到這一點。你無法做到這一點的原因是因爲'auto_increment'可能有差距。您可以使用以下順序的ID:'1,2,3,1500,1501,2900,2920' - 它們都適合第一頁。有什麼可以幫助的是有另一個**列,比如sequence_id,它將以1的順序依次枚舉你的記錄(每一個下一行的sequence_id增加1)。問題是你必須將它從數據庫中刪除。 – 2011-12-28 11:00:44
是的,這是問題,我使用ORDER BY column.created。 但我發現這個解決方案http://stackoverflow.com/questions/3614666/mysql-get-row-position-in-order-by當它發生在我身上,ORDER BY是一個問題。 – 2011-12-28 12:11:43