2012-11-14 48 views
0

我正在使用PHP while()來獲取數據庫查詢的結果。使用PHP while()僅返回前幾個值。

while($results = mysql_fetch_array($galleryresult)) { // show the results }; 

但是,如果超過一定數量的條目,我想分頁結果。例如,如果返回的條目超過12個,則只顯示前12個條目。

1)我怎樣才能適應while(),所以只有前12個條目返回第一頁。

2)那我該如何適應while(),所以第13到第24個結果會返回到第二頁等等。

+0

請不要再使用mysql_ * API。它正在被社區所棄用。這是非常不安全和低效的。用PDO或mysqli代替準備好的語句。 – markus

+0

[MySQL跳過前10個結果]的可能重複(http://stackoverflow.com/questions/2827029/mysql-skip-first-10-results) – slashingweapon

回答

2

修改查詢,使結果集中只有12個條目。這樣你不需要修改while循環。

向URL添加一個參數,該參數告訴腳本應在SQL查詢中使用的偏移量。

創建一個計數結果總數的查詢。用這個來確定在尋呼機上應該顯示多少個頁面。

+0

這可行。我從URL中檢索頁面(使用$ _GET)。另外,我將每頁的條目數(例如12)保存在一個變量中。然後,我只是將當前頁面中的頁面條目數乘以確定我處於哪個索引。 因此,例如; $ imagestoshow =「12」; (isset($ _ GET ['p'])){ \t $ pageindex = $ _GET ['p'] * $ imagestoshow; } 然後,只需將此添加到SQL查詢: 限制「。$ pageindex。」,「。$ imagestoshow; – Nick