新人。。公司有個php練手的項目。 現在出現了這樣的問題:公司用的是QeePHP 比較老,然後公司項目基本上都是是使用架構的資料庫查詢,然後通過SQL的limit來限定 進行資料的分頁篩選的。
因為我要的資料需要合并排序之類的。。 就把讀取出來的資料全部儲存在了一個大的數組裡, 現在資料顯示沒有任何問題,同時還有搜尋功能也完成了。 可以在網頁上顯示出所有的資料。但是分頁功能沒有做。希望大神提供一些思路。。 公司同事用了jQuery的方法和array_slice的方法 似乎可以基本上完成分頁。。但不是特別理解。。不知道有沒有什麼比較好的方法。。
謝謝~
回複內容:
新人。。公司有個php練手的項目。 現在出現了這樣的問題:公司用的是QeePHP 比較老,然後公司項目基本上都是是使用架構的資料庫查詢,然後通過SQL的limit來限定 進行資料的分頁篩選的。
因為我要的資料需要合并排序之類的。。 就把讀取出來的資料全部儲存在了一個大的數組裡, 現在資料顯示沒有任何問題,同時還有搜尋功能也完成了。 可以在網頁上顯示出所有的資料。但是分頁功能沒有做。希望大神提供一些思路。。 公司同事用了jQuery的方法和array_slice的方法 似乎可以基本上完成分頁。。但不是特別理解。。不知道有沒有什麼比較好的方法。。
謝謝~
分頁有幾個要素
define('PAGE_LENGTH', 15); //每頁顯示條數
$total_count = count($data_array); //資料條數
$total_pages = ceil($total_count / PAGE_LENGTH); //總頁數
$current_page = $_GET['page']; //當前頁數
$page_list = range(1, $total_pages); //頁數列表, 當然如果只有1頁或沒有資料要判斷一下
還有就是當頁資料
$data = array_slice($data_array, ($current_page - 1) * PAGE_LENGTH, PAGE_LENGTH); //取出資料, 不管是從一個大資料當中,還是從資料庫裡, 都差不多
個人經驗,分頁一般是為了兩點。1,介面顯示最佳化 2,載入速度最佳化
如果是單純的介面顯示最佳化,這種很簡單,建議使用開源的jquery外掛程式,比如datatable來顯示你的資料,使用ajax傳值;
如果是第二種,一般對應資料量比較大的情況,比如企業報表,最好不要把資料全部取出來再做merge、rank操作,折讓記憶體開銷很大,使用者體驗很差。正確做法應該是按照排序欄位 order by 從資料庫load出page_size的少量資料,再做資料補全工作。
架構還是原生。
你的問題是問如何分頁嗎,手機打不了代碼但你可以在百度搜個demo很簡單的不要怕。
好多年前學php做了個分頁,已經忘光了。
可以下載thinkphp源碼,裡面有個資料分頁的類。可以參考一下