2011-12-30 136 views
0

我正在顯示數據庫中的一些記錄。目前,我正在顯示前20條記錄,但我希望每頁顯示20條記錄的所有記錄。如何使用分頁顯示數據庫中的記錄?

我將如何在php中使用分頁來顯示所有記錄?

對此的任何想法?

+0

的可能重複(HTTP [分頁用PHP?]:// stackoverflow.com/questions/2117342/paging-with-php)([php paging]的第一個結果(http://stackoverflow.com/search?q=php+paging),因爲在你的問題中沒有任何coni在去通過。) – mario 2011-12-30 05:51:07

回答

2

像這樣的東西可能會奏效:

$posts_per_page = 10; 
$page = isset($_GET['page']) ? intval($_GET['page']) : 0; 
$query = sprintf("SELECT * FROM <table> LIMIT %d, %d", 
        $page * $post_per_page, 
        $posts_per_page); 
$result = mysql_query($query); 

上面的查詢將選擇一個偏移基於當前頁10條記錄。 您也將獲得的基於$posts_per_page上的總頁數:

$query = "SELECT COUNT(*) c FROM <table>"; 

您必須跟蹤的職位與$posts_per_page除以總數,也是當前頁面,則可以顯示prev和next鏈接:

if ($current_page > 0) { 
    echo '<a href="index.php?page=' . ($current_page - 1) . '>prev</a>'; 
} 
if ($current_page < $max_pages - 1) { 
    echo '<a href="index.php?page=' . ($current_page + 1) . '>next</a>'; 
} 
1

的基本思想是發送頁面變量,例如$page,你的腳本,然後自定義您的MySQL查詢只檢索頁面的結果。

下面是一個例子,所以你能明白我的意思:

$page = $_GET['page']; 
$resultsPerPage = 20; 
$start = ($page - 1) * $resultsPerPage; 
$query = "SELECT `results` FROM `table` WHERE ... ORDER BY `date` LIMIT $start, $resultsPerPage" 

你可以看到,如果$page = 1,然後$start = 0這個查詢將獲取20個結果,在偏移量爲0對於$page = 2$start = 20所以該查詢將檢索20-40的結果,該結果應顯示在第二頁上。

這是假設你的第一頁是1,如果你想在第一頁爲0,那麼你需要改變$start

$start = $page * $resultsPerPage; 
相關問題