2013-11-22 68 views
-4

所以我有這個網頁,我使用分頁。沒問題,但我想顯示行號。我每頁顯示25條記錄。你知道第1頁,第1-25頁,第2頁,第26-50頁等等。但有了這段代碼,它會在您更改頁面時重新開始。有小費嗎?尋呼顯示行號不斷

$page = isset($_GET['page']) ? intval($_GET['page']) : 1; 
$perPage = 25; 
$startIndex = ($page * $perPage) - $perPage; 


<? $i = 1; foreach($db->query("SELECT value FROM pskills ORDER BY value DESC") as $row): ?> 
#<?=$i?>. <?=$row['value']?> 

<? $i++; endforeach ?> 
+3

也許是因爲你總是從數據庫中選擇相同的記錄......?! – deceze

回答

0

你的查詢需要LIMIT

SELECT value FROM pskills ORDER BY value DESC LIMIT $startIndex , $perPage 
0

你需要LIMIT和OFFSET

,如果你在一個頁面25條

這個查詢頁面1

SELECT value FROM pskills ORDER BY value DESC LIMIT 25 OFFSET 0 

這個查詢2頁

SELECT value FROM pskills ORDER BY value DESC LIMIT 25 OFFSET 25 

此查詢3頁

SELECT value FROM pskills ORDER BY value DESC LIMIT 25 OFFSET 50 

等等......添加25每一頁

希望此查詢可以幫助您

+0

如果有100000頁怎麼辦? –

+0

實際上可以使用邏輯和類和功能..甚至有1.000.000.000頁也莫問題...我使用那些尋呼... – Hans

0

它可能會重新開始,當您更改頁面時,您需要此查詢

($db->query("SELECT value FROM pskills where value > '.(pageno * 25).' ORDER BY value asc limit 25") 

其中pageno從0開始,等等。它會做什麼

1st page ===== value > (0*25) result will be 1 to 25 
2nd page ===== value > (1*25) result will be 25 to 50 
3rd page ===== value > (2*25) result will be 50 to 75 

我不爲什麼要使用desc命令?你想要1 - 25的結果,那麼它應該是asc。