分页Model
时间:2019-11-05
本文章向大家介绍分页Model,主要包括分页Model使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<?php
namespace Admin\Model;
use Think\Model;
class PageModel extends Model{
/*
*此函数分页函数。传入表名和当前页,返回 总页数,总条数 底标的分页的数组
*/
public function index($tableName,$page,$where,$prefix_page, $sql = '', $add_one_flag = false){
$tables = M($tableName);
//第一返回总条数
if($sql){
$tmp = $tables->query($sql);
$data['count'] = $tmp[0]['count_num'];
}else{
if($where){
$data['count']=$tables->where($where)->count();
}else{
$data['count']=$tables->count();
}
}
if($add_one_flag === true){
$data['count'] += 1;
}
$page_step = C('PAGE_NORMAL_COUNT');
//第二返回总页数
$data['page_all']=(int)ceil($data['count']/$page_step);
//第三返回底标的分页数组
$page_start=$page-2;
if($data['page_all']>5){
if($page_start<=0){
$page_start=1;
$page_end=5;
}else{
$page_end=$page+2;
if($page_end>=$data['page_all']){
$page_end=$data['page_all'];
$page_start=$page_end-4;
}
}
}else{
$page_start=1;
$page_end=$data['page_all'];
}
$data['page_start']=$page_start;
$data['page_end']=$page_end;
//第四返回当前页
$data['page']=$page;
//第五 返回上一页和下一页
$prev_page=$page-1;
if($prev_page<=0){
$prev_page=1;
}
$next_page=$page+1;
if($next_page>=$data['page_all']){
$next_page=$data['page_all'];
}
$data['prev_page']=$prev_page;
$data['next_page']=$next_page;
$data['prefix_page']=$prefix_page;
// 自动获取参数,避免分页丢失
$query_string = $_SERVER['QUERY_STRING'];
if ($query_string) {
$pos = strpos($query_string,'&');
if ($pos){
$my_query_string = substr($query_string,$pos);
$data['tail'] = $my_query_string;
} else {
$data['tail'] = '&'.$query_string;
}
}
return $data;
}
}
原文地址:https://www.cnblogs.com/jiqing9006/p/11799779.html
- 使用Spring Cloud搭建高可用服务注册中心
- 从Netflix的Hystrix框架理解服务熔断和服务降级
- 使用Spring Cloud搭建服务注册中心
- 技术分享 | kafka的使用场景以及生态系统
- WebSocket刨根问底(二)
- WebSocket刨根问底(三)之群聊
- SDNLAB群分享(四):利用ODL下发流表创建VxLAN网络
- 一个简单的案例带你入门Dubbo分布式框架
- Ajax上传图片以及上传之前先预览
- Spring Cloud中Hystrix的服务降级与异常处理
- Open vSwitch源码解析之基于VxLAN实现NSH解析功能
- Spring Cloud自定义Hystrix请求命令
- JavaScript面试问题:事件委托和this
- Spring Cloud中的断路器Hystrix
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解android 用webview加载网页(https和http)
- Android自定义网络连接工具类HttpUtil
- Android Studio时间选择器的创建方法
- Android 拦截返回键事件的实例详解
- Android自定义可点击的ImageSpan并在TextView中内置View
- Android开发实现带清空按钮的EditText示例
- Android用于校验集合参数的小封装示例
- TextView中URL等指定特殊字符串与点击事件解析
- Android开发实现仿京东商品搜索选项卡弹窗功能
- Android开发中button按钮的使用及动态添加组件方法示例
- Kotlin开发的一些实用小技巧总结
- Android使用URLConnection提交请求的实现
- android原生JSON解析实例
- iOS新闻类App内容页技术探索
- Android仿iphone自定义滚动选择器