分页offset格式_Thinkphp5 原生sql分页操作
一、問題描述:我們用Thinkphp5開發功能的時候框架自帶的查詢方法不太好使用類似于連接查詢和復制的sql語句,這是我們就需要用到原生sql語句查詢數據。但是使用原生sql語句查詢的方式就無法使用框架自帶的通過實例化數據表db()來調用分頁函數。因此我們就要其他的方式來實現分頁功能了。
二、實現方法:
1.引入框架自帶的分類方法類Bootstrap:use thinkpaginatordriverBootstrap;
2.獲取要分頁的數據參數:獲取當前頁碼、每頁顯示條數、查詢偏移值、分頁數據列表、分頁的總條數,然后把參數傳遞到Bootstrap類中。
public function technique(){
$pageNumber = input('page') ? input('page') : '0';//客戶端傳過來的分頁
if($pageNumber > 0){
$pageNumber_one = $pageNumber-1;
} else {
$pageNumber_one = 0;
}
$limit = 5;//每頁顯示條數
$offset = $pageNumber_one * $limit;//查詢偏移值
//查詢數據
$sql = "select a.id,a.parent_id,a.title,a.abstract,a.browse_num,a.evaluate_num,a.love_num,a.thumbnail,a.update_time,b.title as article_type
from bl_article as a
left join bl_article_type as b
on a.parent_id=b.id
limit $offset,$limit
";
$list = db()->query($sql);
//查詢的總條數
$sql = "select count(*) as count_num
from bl_article as a
left join bl_article_type as b
on a.parent_id=b.id
";
$counts = db()->query($sql);
$count = $counts['0']['count_num'];
//組合分頁數據格式
$pagernator = Bootstrap::make($list,$limit,$pageNumber,$count,false,['path'=>Bootstrap::getCurrentPath(),'query'=>request()->param()]);
$page = $pagernator->render();
$this->assign('article_data',$list);
$this->assign('page', $page);
return $this->fetch('Index/technique');
}
3.前端頁面渲染出數據列表和分頁就可以了。
4.效果圖:
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的分页offset格式_Thinkphp5 原生sql分页操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word域变成正常文本_word文档中打
- 下一篇: 动态规划算法php,php算法学习之动态