用PHP写的一个简单的分页类 2.0版
- <?php
- /*
- 分页类 用于实现对多条数据分页显示
- version:2.0 //基于1.0 数据库查询用mysqli实现
- author:Knight
- E-Mail:S.Knight.Work@gmail.com
- Date:2013-10-20
- */
- /*
- 调用非常方便,先传入连接正确的mysqli对象,然后直接传入查询的sql字符串即可,也可以在第三个参数指定指定每页显示的数据条数
- 例如$pages = new Page($mysqli, 'SELECT * FROM `zy_common_member`');
- 或 $pages = new Page($mysqli, 'SELECT * FROM `zy_common_member`', 10);
- */
- class Page{
- private $curPage;
- private $totalPages;//数据总共分多少页显示
- private $dispNum;//每页显示的数据条数
- private $queryStr;//查询的SQL语句
- private $limitStr;//查询语句后面的limit控制语句
- private $mysqli;//连接数据库的mysqli对象
- /*
- 构造函数
- $queryStr 查询数据的SQL语句
- $dispNum 每页显示的数据条数
- */
- public function __construct( $mysqli, $queryStr='', $dispNum=10){
- $result = $mysqli->query($queryStr);
- $totalNum = $result->num_rows;
- $this->dispNum = $dispNum;
- $this->totalPages = ceil($totalNum / $dispNum);
- $this->queryStr = $queryStr;
- $this->mysqli = $mysqli;
- $temp = (isset($_GET["curPage"]) ? $_GET["curPage"] : 1);
- $this->setCurPage($temp);
- $this->showCurPage();
- $this->showFoot();
- }
- /*显示当前页的数据内容*/
- private function showCurPage(){
- $this->limitStr = ' LIMIT '.(($this->curPage - 1)* $this->dispNum).','.$this->dispNum;
- //echo $this->queryStr.$this->limitStr;
- $result = $this->mysqli->query($this->queryStr.$this->limitStr);
- if (!$result)
- {
- if ($this->totalPages > 0)
- {
- echo '查询出错'.'<br>';
- }
- else
- {
- echo '无数据'.'<br>';
- }
- return;
- }
- $cols = $result->field_count;
- $array = $result->fetch_fields();
- //var_dump($array);
- echo '<table border="1">';
- echo '<tr>';
- for($i=0; $i<$cols; $i++)
- {
- echo '<th>';
- echo $array[$i]->name;
- echo '</th>';
- }
- echo '</tr>';
- while($row = $result->fetch_assoc())
- {
- echo '<tr>';
- foreach($row as $key=>$value)
- {
- echo '<td>';
- echo $value;
- echo '</td>';
- }
- echo '</tr>';
- }
- $result->close();
- echo '</table>';
- }
- private function setCurPage($curPage){
- if($curPage < 1)
- {
- $curPage = 1;
- }
- else if($curPage > $this->totalPages)
- {
- $curPage = $this->totalPages;
- }
- $this->curPage = $curPage;
- }
- /*
- 显示分页页脚的信息
- 如首页,上一页,下一页,尾页等信息
- */
- private function showFoot(){
- echo '<a href="?curPage=1">首页</a>';
- echo '<a href="?curPage='.($this->curPage - 1).'">上一页</a>';
- echo '<a href="?curPage='.($this->curPage + 1).'">下一页</a>';
- echo '<a href="?curPage='.$this->totalPages.'">尾页</a>';
- }
- }
- ?>
用PHP写的一个简单的分页类 2.0版的更多相关文章
- 用PHP写的一个简单的分页类 1.0版
<?php /* 分页类 用于实现对多条数据分页显示 version:1.0 author:Knight E-Mail:S.Knight.Work@gmail.com Date:2013-10- ...
- 只是一个用EF写的一个简单的分页方法而已
只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...
- 自己写的一个简单的Tab类
//------------- PS_DOM 功能函数 start----------------var PS_DOM ={ indexOf: function(arr, e){ for(var i= ...
- 写了一个简单的CGI Server
之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...
- 自己写的一个简单PHP采集器
自己写的一个简单PHP采集器 <?php //**************************************************************** $url = &q ...
- 写了一个简单可用的IOC
根据<架构探险从零开始写javaweb框架>内容写的一个简单的 IOC 学习记录 只说明了主要的类,从上到下执行的流程,需要分清主次,无法每个类都说明,只是把整个主线流程说清楚,避免 ...
- 写了一个简单的 Mybatis
写了一个简单的 Mybatis,取名 SimpleMybatis . 具备增删改查的基本功能,后续还要添加剩下的基本数据类型和Java集合类型的处理. 脑图中有完整的源码和测试的地址 http://n ...
- Python之自定义封装一个简单的Log类
参考:http://www.jb51.net/article/42626.htm 参考:http://blog.csdn.net/u011541946/article/details/70198676 ...
- VC++ 一个简单的Log类
在软件开发中,为程序建立Log日志是很必要的,它可以记录程序运行的状态以及出错信息,方便维护和调试. 下面实现了一个简单的Log类,使用非常简单,仅供参考. // CLogHelper.h : hea ...
随机推荐
- Java并发(二):基础概念
并发编程的第二部分,先来谈谈发布(Publish)与逸出(Escape); 发布是指:对象能够在当前作用域之外的代码中使用,例如:将对象的引用传递到其他类的方法中,对象的引用保存在其他类可以访问的地方 ...
- dubbo服务降级(1)
1. 在 dubbo 管理控制台配置服务降级 上图的配置含义是:consumer 调用 com.zhang.HelloService 的方法时,直接返回 null,不发起远程调用. 实际操作是:在 z ...
- 洛谷P2430 严酷的训练
第一眼看这道题...啊哈,啥??? 仔细看一看,发现:诶, 这不是01背包吗? 两人水平值的比值*老王做题用时 可以算出WKY做每道题的用时. 那么每道题的p就可以转换成费用c[i], 价值q就是w[ ...
- 牛客NOIP提高组(二)题解
心路历程 预计得分:100 + 40 + 30 = 170 实际得分:100 + 30 + 0 = 130 T2有一个部分分的数组没开够RE了. T3好像是思路有点小问题.. 思路没问题,实现的时候一 ...
- VueJs $watch()方法总结!!
最近公司用vue框架写交互,之前没怎么写过,但是很多数据双向绑定的东东跟angular很像!所以上手很快!哈哈 今天就碰到一个vue的问题啊!!产品需求是,datetimepick时间选择器一更改时间 ...
- html5 03
HTML03 一. 表单标签 <form></form> 常用属性 Action 跳转到什么页面 Method 以什么模式提交 Get Url有长度限制 IE6.0 url ...
- 数据结构-List接口-LinkedList类-Set接口-HashSet类-Collection总结
一.数据结构:4种--<需补充> 1.堆栈结构: 特点:LIFO(后进先出);栈的入口/出口都在顶端位置;压栈就是存元素/弹栈就是取元素; 代表类:Stack; 其 ...
- apple-touch-icon-precomposed
<link rel="apple-touch-icon-precomposed" href=""> apple-touch-icon-precomp ...
- LR使用流程简介之录制方式说明
1.LR脚本录制方式说明1)HTML-based script基于HTML的脚本 从内存中读取并下载资源,较少的关联处理,可以加入图片检查,回放时需要解析返回的信息 a-基于用户行为的方式 web_l ...
- 一点对原生HTTP请求的理解与总结
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/10946165.html,多谢,=.=~ 术语 HTTP:超文本传输协议,规定Web浏览器如何从W ...