采用后端分页的方式不管用了什么插件或者框架,回归本质,底层还是sql。这里提供mysql 和 SQL Server 分页sql 实现。
分页需要的知道的几个参数:
当前页
一页多少行
总记录数
总页数
上面的4个参数可以先自己定义默认值,但是总记录数和总行数需要查询数据库之后计算
Php+mysql:
$pageNow = 1;//当前页 $pageSize = 5;//一页多少行 $lineCount = 0;//总记录书 $pageCount = 0;//总页数 //从get请求中获取前端需要请求的当前页 if(isset($_GET['pageNow'])){ $pageNow = $_GET['pageNow']; } //统计总记录数 $sql = "select count(*) as count from table_test"; //执行查询 $res=$conn->query($sql); while($row=$res->fetch_assoc()){ $lineCount = $row['count']; } //向上取整,统计总页数 $pageCount = ceil($lineCount/$pageSize); //动态生成sql $sql = "select * from table_test limit ".($pageNow-1) * $pageSize.", $pageSize"; //下面的部分省略,执行查询即可
Php + SQL Server2008R2:
如果不知道php怎么连接sql server 可以参考这篇博客
$lineCount = 0;//总行数 $pageSize = 15;//一页多少行 $pageNow = 1;//当前页 $pageCount = 0;//一共多少页页数 = 总行数 / 一行多少页并且向上取整 if(isset($_GET['pageNow'])){ $pageNow = $_GET['pageNow']; } //查询总行数 $sql = "select count(*) as num from writeCard"; $result = odbc_do($conn, $sql); if(odbc_fetch_row($result)){ $lineCount = odbc_result($result, "num"); } //算出总页数 $pageCount = ceil($lineCount / $pageSize); $stratIndex = ($pageNow-1)*$pageSize + 1; $endIndex = $stratIndex + $pageSize ; $sql = "select * from (select *,ROW_NUMBER() over(order by convert(bigint,CardOutnerID) asc) as num from writeCard) as temp where temp.num >= ". stratIndex." and temp.num <". endIndex; //下面的部分省略,执行查询即可