2011-12-19 98 views
1

例如,您可以搜索倫敦的一家酒店,並獲得250家酒店,其中25家酒店在首頁上顯示。在每個頁面上,用戶可以根據價格,姓名,用戶評論等選擇酒店。現在要做的明智之舉將僅僅是從數據庫中獲得第一頁上的前25家酒店。當用戶移動到頁面2時,爲下一個25個酒店進行另一個數據庫查詢並將先前的結果保存在緩存中。旅遊網站如何實現搜索結果的排序?

現在考慮這一點,用戶在第1頁上,看到25家酒店按價格排序,現在他根據用戶評分對它們進行排序,在這種情況下,我們應該保留我們已經進入緩存的酒店,並只要求額外酒店。這是如何實施的?有沒有建立在任何語言(最好是PHP)或我們必須從頭開始使用多個查詢?

回答

0

這通常如下進行:

查詢與order by執行必需字段,並用top(在某些數據庫limit)設置爲(page_index + 1) * entries_per_page結果。查詢返回一個隨機訪問行集(您也可能會聽說這個稱爲結果集或記錄集,具體取決於您使用的數據庫庫),它支持諸如MoveTo(row_index)MoveNext()等方法。所以,我們執行MoveTo(page_index * entries_per_page),然後我們讀取並顯示entries_per_page結果。行集通常還提供了一個Count屬性,我們調用該屬性來獲取查詢會獲取的行數(如果我們讓它運行到最後(當然,我們不這樣做),以便我們可以計算和顯示用戶存在多少頁面。

+0

謝謝MikeNakis :) – ankit

+0

很高興能夠有所幫助! –

相關問題