2012-04-14 25 views
2

我試圖實現一種方法,我創建一個記分板(while循環),並通過某個數字字段(點)對獲取的結果進行排序。但我需要達到的是如下排名/編號在php

rank----username--point 
1st------test-----------3200 
2nd-----test2---------1200 

etc ..我分頁我的結果,每頁限制25個結果。我嘗試了while循環通過以下方式

while($row = mysql_fetch_array($query) || $i<=$totalnumberofrows){ 
    echo out the results 
$i++ 
} 

這樣做是從1到25號完美,但在另一方面,第2頁它再次數字1-25。 是否有一個技巧來實現我需要達到的目標? 也就是說即使在分頁時,也可以從1到(總行數)連續編號。

+0

嘗試ezSQL。它很容易做分頁任務。 – hjpotter92 2012-04-14 01:19:19

+0

[最後,簡單的分頁類。](http://www.catchmyfame.com/2007/07/28/finally-the-simple-pagination-class/)乾杯。 – Josh 2012-04-14 01:28:25

回答

2

什麼你要找的是MySQL LIMIT聲明。例如,下面的查詢將返回入門0-24(所以,在你的數據庫中的第一個25個條目):

SELECT * FROM entries ORDER BY `points` LIMIT 0, 25 

說你想獲取第二頁(上接第25項),你可以做:

SELECT * FROM entries ORDER BY `points` LIMIT 25, 25 

這裏要注意的最重要的事情是,第一個參數是它應該開始的行,第二個參數是不是最後一排,但它應該返回行的總金額。

要確定的出發點,只是做(($ PAGE_NUMBER - 1)* 25),假設你的第一頁的編號爲1例如,您可以執行以下操作:

<?php 
$start = (($page_number - 1) * 25); 
$query = "SELECT * FROM entries ORDER BY `points` LIMIT {$start}, 25"; 
// ... rest of your code goes here ... 
?> 
0

如果您知道頁碼和偏移,你應該能夠做到以下幾點

$rank = $offset * $page_number; 
1

只需添加25個數爲每個頁面, 第二頁(在我的例子) - 增加25 第三頁 - 加50 等等

$page = 2; 
while($row = mysql_fetch_array($query) || $i<=$totalnumberofrows){ 
    echo out the results 
    echo (($page-1)*$totalnumberofrows)+$i; 
    $i++ 
}