php动态分页类

  1 <?php
  2 
  3 /**
  4  *  页面名称:cls_page.php
  5  */
  6 class Page {
  7     private $each_disNums; //每页显示的条目数
  8     private $nums; //总条目数
  9     private $current_page; //当前被选中的页
 10     private $sub_pages; //每次显示的页数
 11     private $pageNums; //总页数
 12     private $page_array = array (); //用来构造分页的数组
 13     private $subPage_link; //每个分页的链接
 14 
 15     
 16     /**
 17      *
 18      * __construct是SubPages的构造函数,用来在创建类的时候自动运行.
 19      * @$each_disNums   每页显示的条目数
 20      * @nums     总条目数
 21      * @current_num     当前被选中的页
 22      * @sub_pages       每次显示的页数
 23      * @subPage_link    每个分页的链接
 24      * @subPage_type    显示分页的类型
 25      *
 26      * 当@subPage_type=1的时候为普通分页模式
 27      *    example:   共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]
 28      *    当@subPage_type=2的时候为经典分页样式
 29      *     example:   当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]
 30      */
 31     function __construct($each_disNums, $nums, $current_page, $sub_pages, $subPage_link) {
 32         $this->each_disNums = intval($each_disNums);
 33         $this->nums = intval($nums);
 34         if (!$current_page) {
 35             $this->current_page = 1;
 36         } else {
 37             $this->current_page = intval($current_page);
 38         }
 39         $this->sub_pages = intval($sub_pages);
 40         $this->pageNums = ceil($nums / $each_disNums);
 41         $this->subPage_link = $subPage_link;    
 42     }
 43     /**
 44      * 照顾低版本
 45      */
 46     /*
 47     function __construct($each_disNums, $nums, $current_page, $sub_pages, $subPage_linke) {
 48         $this->Page($each_disNums, $nums, $current_page, $sub_pages, $subPage_link);
 49         
 50     }
 51     */
 52 
 53     /*
 54      __destruct析构函数,当类不在使用的时候调用,该函数用来释放资源。
 55     */
 56     function __destruct() {
 57         unset ($each_disNums);
 58         unset ($nums);
 59         unset ($current_page);
 60         unset ($sub_pages);
 61         unset ($pageNums);
 62         unset ($page_array);
 63         unset ($subPage_link);
 64     }
 65 
 66     /*
 67      用来给建立分页的数组初始化的函数。
 68     */
 69     function initArray() {
 70         for ($i = 0; $i < $this->sub_pages; $i++) {
 71             $this->page_array[$i] = $i;
 72         }
 73         return $this->page_array;
 74     }
 75 
 76     /*
 77      construct_num_Page该函数使用来构造显示的条目
 78      即使:[1][2][3][4][5][6][7][8][9][10]
 79     */
 80     function construct_num_Page() {
 81         if ($this->pageNums < $this->sub_pages) {
 82             $current_array = array ();
 83             for ($i = 0; $i < $this->pageNums; $i++) {
 84                 $current_array[$i] = $i +1;
 85             }
 86         } else {
 87             $current_array = $this->initArray();
 88             if ($this->current_page <= 3) {
 89                 for ($i = 0; $i < count($current_array); $i++) {
 90                     $current_array[$i] = $i +1;
 91                 }
 92             }
 93             elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1) {
 94                 for ($i = 0; $i < count($current_array); $i++) {
 95                     $current_array[$i] = ($this->pageNums) - ($this->sub_pages) + 1 + $i;
 96                 }
 97             } else {
 98                 for ($i = 0; $i < count($current_array); $i++) {
 99                     $current_array[$i] = $this->current_page - 2 + $i;
100                 }
101             }
102         }
103 
104         return $current_array;
105     }
106 
107     /*
108     构造普通模式的分页
109     共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]
110     */
111     function subPageCss1() {
112         $subPageCss1Str = "";
113         $subPageCss1Str .= "共" . $this->nums . "条记录,";
114         $subPageCss1Str .= "每页显示" . $this->each_disNums . "条,";
115         $subPageCss1Str .= "当前第" . $this->current_page . "/" . $this->pageNums . "页 ";
116         if ($this->current_page > 1) {
117             $firstPageUrl = $this->subPage_link . "1";
118             $prewPageUrl = $this->subPage_link . ($this->current_page - 1);
119             $subPageCss1Str .= "[<a href='$firstPageUrl'>首页</a>] ";
120             $subPageCss1Str .= "[<a href='$prewPageUrl'>上一页</a>] ";
121         } else {
122             $subPageCss1Str .= "[首页] ";
123             $subPageCss1Str .= "[上一页] ";
124         }
125 
126         if ($this->current_page < $this->pageNums) {
127             $lastPageUrl = $this->subPage_link . $this->pageNums;
128             $nextPageUrl = $this->subPage_link . ($this->current_page + 1);
129             $subPageCss1Str .= " [<a href='$nextPageUrl'>下一页</a>] ";
130             $subPageCss1Str .= "[<a href='$lastPageUrl'>尾页</a>] ";
131         } else {
132             $subPageCss1Str .= "[下一页] ";
133             $subPageCss1Str .= "[尾页] ";
134         }
135 
136         return $subPageCss1Str;
137 
138     }
139 
140     /*
141     构造经典模式的分页
142     当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]
143     */
144     function subPageCss2() {
145         $subPageCss2Str = "";
146         $subPageCss2Str .= "当前第" . $this->current_page . "/" . $this->pageNums . "页 ";
147 
148         if ($this->current_page > 1) {
149             $firstPageUrl = $this->subPage_link . "1";
150             $prewPageUrl = $this->subPage_link . ($this->current_page - 1);
151             $subPageCss2Str .= "[<a href='$firstPageUrl'>首页</a>] ";
152             $subPageCss2Str .= "[<a href='$prewPageUrl'>上一页</a>] ";
153         } else {
154             $subPageCss2Str .= "[首页] ";
155             $subPageCss2Str .= "[上一页] ";
156         }
157 
158         $a = $this->construct_num_Page();
159         for ($i = 0; $i < count($a); $i++) {
160             $s = $a[$i];
161             if ($s == $this->current_page) {
162                 $subPageCss2Str .= "[<span style='color:red;font-weight:bold;'>" . $s . "</span>]";
163             } else {
164                 $url = $this->subPage_link . $s;
165                 $subPageCss2Str .= "[<a href='$url'>" . $s . "</a>]";
166             }
167         }
168 
169         if ($this->current_page < $this->pageNums) {
170             $lastPageUrl = $this->subPage_link . $this->pageNums;
171             $nextPageUrl = $this->subPage_link . ($this->current_page + 1);
172             $subPageCss2Str .= " [<a href='$nextPageUrl'>下一页</a>] ";
173             $subPageCss2Str .= "[<a href='$lastPageUrl'>尾页</a>] ";
174         } else {
175             $subPageCss2Str .= "[下一页] ";
176             $subPageCss2Str .= "[尾页] ";
177         }
178         return $subPageCss2Str;
179     }
180 }
181 
182 
183 ?>
184 
185 
186 
187 <?
188  class sqldao{
189  //连接数据库
190     function conn(){
191     $dbh=mysql_connect('localhost','username','pass')or die("对不起,数据库连接错误!请稍候再来,或与管理员联系");
192     mysql_query("set names 'utf8'", $dbh);
193     mysql_select_db('tableName');
194     return $dbh;
195     }
196  }
197 ?>
198 
199 
200 
201 <?
202 //以下为测试代码
203 $sqldao=new sqldao();
204 $dbh=$sqldao->conn();
205 
206 $start=($_GET['p']-1)*10;
207 $que="select utname from renyuan";
208 $rs=mysql_query($que,$dbh);
209 $num_all=mysql_num_rows($rs);
210 
211 $rs=mysql_query($que." limit ".$start.",10",$dbh);
212 $num=mysql_num_rows($rs);
213 for($i=0;$i<$num;$i++){
214 $row=mysql_fetch_array($rs);
215 echo $row['utname']."<br>";
216 }
217 
218 
219 echo "<hr>";
220 //测试一下,看看两种不同效果
221 //$t = new Page(显示条数, 数据总数, 页数, 页数链接个数, '页面链接');
222 $t = new Page(10, $num_all, $_GET['p'], 10, 'cls_page.php?p=');
223 echo $t->subPageCss2();
224 echo "<p>";
225 echo $t->subPageCss1();
226 
227 ?>

 

转载于:https://www.cnblogs.com/huanglibin/p/3502320.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php怎么调试小程序,教你如何配置微信小程序

这篇文章主要介绍了微信小程序 教程之小程序配置的相关资料,这里对app.json,pages,window等做了详细介绍&#xff0c;对于初学开发微信小程序的朋友&#xff0c;掌握这些还是比较重要的&#xff0c;需要的朋友可以参考下微信小程序——配置以下就是小编对小程序配置的资料进行的…

openssl-1.0.1e for arm

1.官网下载最新版本openssl-1.0.1e 2. ./config no-asmshared--prefix 说明&#xff1a;no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程。 shared 生成动态链接库。 --prefix 指定生成lib include bin目录的路径&#xff0c;不修改此项则默认为OPENSSLDIR目录。…

如何查看及修改Oracle的字符编码

1.方式一 select userenv(language) from dual; 2.方式二 用SYSDBA用户登录&#xff0c;执行如下SQL SELECT value$FROM sys.props$WHERE name ‘NLS_CHARACTERSET’ 或者&#xff1a; SELECT * FROM NLS_DATABASE_PARAMETERS 结果格式如下&#xff1a;NLS_CHARACTERSET UTF8 …

php中的控制器是什么意思,理解PHP中的MVC编程之控制器_php

简单来讲&#xff0c;控制器的作用就是接受请求。它使用获取的方法&#xff0c;在这里是通过URI&#xff0c;载入一个功能模块来刷新或者提交一个表述层。控制器将使用$_GET自动全局变量来判断载入哪一个模块。一个请求的例子&#xff0c;看起来像这样&#xff1a;http://examp…

softwave

hg apt-get install mercurial texinfo apt-get install texinfo svn apt-get install subversion mkpasswd apt-get install whois boost apt-get install libboost-dev boost yum install boost boost-devel boost-doc

我的20132014

默默的关注博客园已经小半年了&#xff0c;看着大神们分享的各种精彩文章&#xff0c;总是幻想着自己也能写出高质量的博文&#xff0c;可是自己只是一个刚工作小半年的菜鸟程序员&#xff0c;还达不到那样的高度。所以只能围观了。现在&#xff0c;作为2014年新的开始&#xf…

mysql php教程,MySQL PHP语法

MySQL PHP语法MySQL 可应用于多种语言&#xff0c;包括 PERL, C, C, JAVA 和 PHP。 在这些语言中&#xff0c;Mysql在PHP的web开发中是应用最广泛。在本教程中我们大部分实例都采用了PHP语言。如果你想了解Mysql在PHP中的应用&#xff0c;可以访问我们的 PHP中使用Mysql介绍。P…

linux C 获取日期时间

原文 http://blog.csdn.net/zhu244912654/article/details/8610219概述 世界标准时间&#xff08; Coordinated Universal Time &#xff0c; UTC &#xff09;&#xff0c;也就是大家所熟知的格林威治标准时间&#xff08; Greenwich Mean Time &#xff0c; GMT &#xff09…

GitHub---最简单的使用

大神就不要喷我了&#xff0c;写这个只是希望新人能够对自己写的项目更方便的本地管理。&#xff08;其实我也只会这点东西w&#xff09; 这两天稍微看了看GitHub&#xff0c;之前不是很明白这个版本控制器到底是什么意思&#xff0c;现在略微有了解&#xff0c;这是对项目代码…

php apache配置测试端口,详解安装配置Windows版apache服务器及压力测试

下载Apache1、下载地址&#xff1a;http://httpd.apache.org/download.cgi2、点击链接Files for Microsoft Windows&#xff1a;安装步骤1、先安装apache补丁1)下载地址&#xff1a;https://www.microsoft.com/zh-cn/download/confirmation.aspx?id481452)如果没有安装&#x…

Linux下boost库的安装

最近由于编译一个程序用到了C的boost库&#xff0c;所以便安装了这个库。但是&#xff0c;其中遇到了一些小问题。所以记录下来&#xff0c;以供别人参考。首先说一下我的环境&#xff1a;Ubuntu 12.04 32bit, gcc 4.6.3其实在ubuntu下&#xff0c;可以用一下命令直接安装sudo…

No projects are found to import

当导入项目报 No projects are found to import 时, 说明缺失一个.project[.classpath]文件,到别的项目中拷贝一份 然后再次导入会报 Some projects cannot be imported because they already exist in the workspace 那是因为你没有改文件中的name值,打开文件 修改name属性为你…

php 时间错误,PHP xdebug调试trace记录时间错误

调试生成的trace文件如下&#xff0c;(trace里的文件记录的时间是UTC)TRACE START [2018-01-12 02:39:46]0.0024 363464 0 -> calc_money(double, double) D:\wamp64\www\shakedown\index.php:100.0026 363464 >> 53.50.0027 363464 0 -> xdebug_stop_trace() D:\w…

ASCII,Unicode和UTF-8

1. ASCII码 我们知道&#xff0c;在计算机内部&#xff0c;所有的信息最终都表示为一个二进制的字符串。每一个二进制位&#xff08;bit&#xff09;有0和1两种状态&#xff0c;因此八个二进制位就可以组合出256种状态&#xff0c;这被称为一个字节&#xff08;byte&#xff09…

Android 使用SeekBar调节系统音量

以下是一个使用SeekBar来调节系统音量的实例&#xff1a; 1、XML&#xff1a; <SeekBar android:id"id/sound" android:layout_width"150px" android:layout_height"10px" android:max"100" //设置拖动条最大值 android:p…

matlab可达矩阵 结果,matlab求可达矩阵

matlab中可达矩阵的计算 2页 1下载券 邻接矩阵的可达矩阵及层... 2页 2下载券 邻接矩阵的一种计算方法 7页 免费 ISM算法(邻接矩阵求可达... 暂无......JAVA矩阵算法代码 4页 2下载券 可达矩阵新算法 2页 2下载券 基于ISM模型用matlab软件... 10页 2下载券 图邻接矩阵相关算法实…

muduo for v210

目标&#xff1a;将muduo移植到v210上面 内核版本&#xff1a;2.6.35.7 1. 修改最上层的CMakeLists.txt 1) 在CXX_FLAGS里&#xff0c;加上-DVALGRIND&#xff0c;这样SocketsOps.cc就不会报错了。 2) 在CXX_FLAGS里&#xff0c;修改-marchnative为-marcharmv4 3) set(CMAKE_…

Com组件介绍

COM组件简介面向对象的思想难以适应这种分布式软件模型&#xff0c;于是组件化程序设计思想得到了迅速的发展。 按照组件化的程序设计的思想&#xff0c;复杂的应用程序被设计成一些小的&#xff0c;功能单一的组件模块&#xff0c;这些组件模块可以运行在同一台机器上&#xf…

matlab中solve和resolve,resolve和solve的区别

solve和resolve的区别在于&#xff1a;首先solve一般用于解决难题。如solve a problem, solve a riddle, solve an algebra problem。而resolve 是用在解决矛盾&#xff0c;或者是解决大难题&#xff0c;较显示问题的严重性。如resolve a conflict。其他有关slove的词dissolve&…

v210 启动脚本分析

1. 一般嵌入式linux系统的init进程会首先读取/etc/inittab文件&#xff0c;这里记录了系统在不阶段需要运行的程序与脚本文件。 其中v210的此文件里有这么一句 ::sysinit:/etc/init.d/rcS 也就是说在系统启动阶段要运行rcS文件。 2. 现在看rcS文件 for i in /etc/init.d/S??*…