2016-05-22 39 views
0

在我的網站有一個頁面可以顯示錶中的所有記錄。所以,我有一個簡單的分頁機制。獲取所有記錄按日期和時間排序,並有限制

對於分頁,我根據頁面查詢限制表。

$query = "SELECT * "; 
$query .= "FROM records "; 
$query .= "LIMIT $start, $limit;"; 

這對我來說非常合適。

但是,我需要獲取記錄的順序不是表的順序。這應該是根據記錄的日期和時間。 (有日期和時間的列)。

所以,當我改變查詢到這個,它總是給我在每一頁相同的記錄。

$query = "SELECT * "; 
$query .= "FROM records "; 
$query .= "WHERE published = '1' ORDER BY date DESC, time DESC "; 
$query .= "LIMIT $start, $limit;"; 

我需要的是,所有的記錄應該由日期和時間訂購,他們也應該尊重$start$limit變量。

這基本上是分頁工作的實際方式。如何實現它..

+0

它應該工作。你是否填充'$ start'和'$ limit'? – nospor

+0

您目前的查詢無法正常工作嗎? – Rahul

+0

目前的是第二個。它正在工作,但是,它不會正確分頁。 – TharinduLucky

回答

1

的標準模式這有點像

$itemsPerPage = 10; 
$page = (int) $page; // get $page from route or $_GET['page'] or wherever 
$pageNum = (!empty($page)) ? (int) $page - 1 : 0; 
$start = $pageNum * $itemsPerPage; 

$query = "SELECT * "; 
$query .= "FROM records "; 
$query .= "WHERE published = '1' ORDER BY date DESC, time DESC "; 
$query .= "LIMIT $start, $itemsPerPage;"; 

記住它的項目開始加號,而不是開始結束。

+0

謝謝我所有的工作! :)這是我的壞,沒有正確設置限制! – TharinduLucky

1

假設您的$ start和$ limit是每個數字,例如$ start = 1,$ limit = 50,在每個頁面之後,將$ start和$ limit的值增加$ limit,所以$start += $limit$limit += $limit。這應該具有將$ start和$ limit移動到下一頁記錄的效果。