有人請向我解釋如何解決這個問題?Mysqli php ajax分頁
我有4000條記錄的表,選擇選項和搜索欄來過濾掉表
但是我想弄清楚設立分頁的最佳途徑。
一號方法: 我應該對數據庫中的一個查詢,並與所有記錄填充表,然後設置分頁使用javascript,所以我可以能夠以搜索不僅在當前頁上顯示的記錄?
第二個方法 設置了PHP的分頁,通過AJAX爲每個頁面進行查詢?但是,如果我需要搜索不在當前頁面上的記錄,恐怕這種方法不允許我過濾出表格。
有人請向我解釋如何解決這個問題?Mysqli php ajax分頁
我有4000條記錄的表,選擇選項和搜索欄來過濾掉表
但是我想弄清楚設立分頁的最佳途徑。
一號方法: 我應該對數據庫中的一個查詢,並與所有記錄填充表,然後設置分頁使用javascript,所以我可以能夠以搜索不僅在當前頁上顯示的記錄?
第二個方法 設置了PHP的分頁,通過AJAX爲每個頁面進行查詢?但是,如果我需要搜索不在當前頁面上的記錄,恐怕這種方法不允許我過濾出表格。
1的方法:絕對不是,不推薦加載大量結果不得而知。
第二種方法更有意義。您可以在SELECT語句中使用LIMIT語句來決定您想要的記錄。防爆。如果你對分頁10個元素perpage,你可以做
SELECT * FROM Table LIMIT 10
然後
SELECT * FROM Table LIMIT 10,10
等。指數在0
注意,你甚至不需要Ajax來做到這一點,你的下一個按鈕可以指定頁面的下一個負載補償開始。它是根據你的知識選擇,頁面的其餘部分的大小(最小化加載時間),...
我不希望頁面刷新這就是爲什麼我認爲我會通過與Ajax請求。 我已經採取了第二種方法,唯一的問題是現在,如果我尋找的東西,它只是篩選出當前頁面上有什麼,因爲我使用的只有JavaScript來過濾出結果。 我想我必須使用PHP的搜索功能,並傳遞一個Ajax請求,這樣頁面不會重新發送? – DavidNy
Ajax沒問題。現在你的第二個問題,更好地解釋,我不明白。你的SELECT獲得了所有可能的值,但你告訴MySLQ只給你前10個結果。如果你運行另一個查詢,它甚至不知道你放在第一個的限制。 – Nic3500
我的初始查詢只選擇每頁10條記錄。 現在如果我第1頁上並沒有我想搜索使用我的搜索輸入字段的記錄,但記錄是在第二頁上,我怎麼去的? – DavidNy
第二個是比較合適做的,而獲取你需要使用它不會影響到更多的服務器上限制第二種方法。有關於它的網上教程噸http://phppot.com/php/ajax-pagination-with-php/ –