java - 請教一個更加優雅的實現業務中的分頁加載的問題?
問題描述
在負責學校下學期圖書館的項目的一部分,現在碰到了一個業務設計的困難。
比如說在首頁的話,我計劃當學生查詢相關的信息的時候全部采用ajax加載,不是很習慣很多網站比如知乎那種拖動到底部自動加載。我的想法是在底部設置一個分頁的選項,每一頁顯示15條記錄,文章全部采用ajax加載。
這樣sql語句大概就是select xxx from xxx condition limit 15 offset xxx。但是現在由于要做分頁,我必須要知道一個學生總共有多少條記錄在數據庫中,前端才好設計,總記錄可以通過sql語句select count(*) from xxx condition查詢出來,然后將總記錄保存在前端中。
如果這樣的話,必須要為拆分成兩條sql語句查詢,感覺不是很優雅,請問有什么更加優雅的實現方案么?
ps: 因為在系統中有很多相似的業務都是要采用類似的分頁設計,每次都這樣使用兩條sql語句分開查詢太不優雅了。
補充
答主好像都沒看請題目。一位是答的就是sql語句1,另外一位說的是前端。
多謝各位網友的回答,問題已解決,看來只能采用兩條sql語句了 ^_^
問題解答
回答1:var start = 頁標 - 1;$.get('url?start=' + start * 15,function(){});
$start = $_GET['start'];$end = $start + 15;$sql = 'select * from table limit {$start}, {$end}';
select a.*, b.count from table a, (select count(*) as count from table ) b LIMIT 1,15回答2:
不用想了,必須是兩條的.要一條也行:select * from tableunion select 0, 0...., count(*) from table
回答3:這很正常。如果想用一條sql解決,就把所有對象從數據庫里查出來再做一系列操作,但搞不好你的內存就爆掉了。
回答4:不用想了 必須是兩條 。分頁的實現 定義一個泛型類page<T> 里面放什么 需要我說的更詳細嗎?
回答5:試試PageHelper,就一條sql語句,甚至不需要limit
回答6:要優雅的分頁 分頁的插件很多的
相關文章:
1. 在應用配置文件 app.php 中找不到’route_check_cache’配置項2. html按鍵開關如何提交我想需要的值到數據庫3. HTML 5輸入框只能輸入漢字、字母、數字、標點符號?正則如何寫?4. gvim - 誰有vim里CSS的Indent文件, 能縮進@media里面的5. 跟著課件一模一樣的操作使用tp6,出現了錯誤6. PHP類屬性聲明?7. objective-c - ios 怎么實現微信聯系列表 最好是swift8. javascript - 請教如何獲取百度貼吧新增的兩個加密參數9. html - 微信瀏覽器h5<video>標簽問題10. java - 安卓接入微信登錄,onCreate不會執行
