php自动适应范围的分页代码
2015-01-24信息快讯网
分享一个自己写的“页码自动适应范围”的分页代码
<?php function page($page,$total,$phpfile,$pagesize=10,$pagelen=7){ $pagecode = '';//定义变量,存放分页生成的HTML $page = intval($page);//避免非数字页码 $total = intval($total);//保证总记录数值类型正确 if(!$total) return array();//总记录数为零返回空数组 $pages = ceil($total/$pagesize);//计算总分页 //处理页码合法性 if($page<1) $page = 1; if($page>$pages) $page = $pages; //计算查询偏移量 $offset = $pagesize*($page-1); //页码范围计算 $init = 1;//起始页码数 $max = $pages;//结束页码数 $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数 $pageoffset = ($pagelen-1)/2;//页码个数左右偏移量 //生成html $pagecode='<div class="page">'; $pagecode.="<span>$page/$pages</span>";//第几页,共几页 //如果是第一页,则不显示第一页和上一页的连接 if($page!=1){ $pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一页 $pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一页 } //分页数大于页码个数时可以偏移 if($pages>$pagelen){ //如果当前页小于等于左偏移 if($page<=$pageoffset){ $init=1; $max = $pagelen; }else{//如果当前页大于左偏移 //如果当前页码右偏移超出最大分页数 if($page+$pageoffset>=$pages+1){ $init = $pages-$pagelen+1; }else{ //左右偏移都存在时的计算 $init = $page-$pageoffset; $max = $page+$pageoffset; } } } //生成html for($i=$init;$i<=$max;$i++){ if($i==$page){ $pagecode.='<span>'.$i.'</span>'; } else { $pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>"; } } if($page!=$pages){ $pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页 $pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页 } $pagecode.="<input type=\"text\" size=\"3\" onkeydown=\"if(event.keyCode==13) {window.location.href='{$phpfile}?page='+this.value; return false;}\" /></div>"; return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize); } ?>
加了页码跳转文本框
以下是新手使用说明
<?php $phpfile = 'index.php';//页面文件名 $page= isset($_GET['page'])?$_GET['page']:1;//默认页码 $db = mysql_connect('localhost','test','test');//链接数据库 mysql_select_db('test',$db);//选择数据库 $counts = mysql_num_rows(mysql_query('select `id` from `test`',$db));//获取需要的数据总条数 $sql='select `id`,`title` from `test`';//定义查询语句SQL $getpageinfo = page($page,$counts,$phpfile);//调用函数,生成分页HTML 和 SQL LIMIT 子句 $sql.=$getpageinfo['sqllimit'];//组合完整的SQL语句 $data = $row = array();//初始化数组 $result = mysql_query($sql,$db);//获取结果集 //将数据装入$data数组 while($row = mysql_fetch_array($result)){ $data[]=$row; } ?> <?php echo $getpageinfo['pagecode'];//显示分页的html代码 ?>
======================
补贴css
<style type="text/css"> body{font-family:Tahoma;} .page{padding:2px;font-weight:bolder;font-size:12px;} .page a{border:1px solid #ccc;padding:0 5px 0 5px;margin:2px;text-decoration:none;color:#333;} .page span{padding:0 5px 0 5px;margin:2px;background:#09f;color:#fff;border:1px solid #09c;} </style>
PHP array_flip() 删除重复数组元素专用函数
mysql下创建字段并设置主键的php代码
php带密码功能并下载远程文件保存本地指定目录 修改加强版
ezSQL PHP数据库操作类库
php 提速工具eAccelerator 配置参数详解
php 获取一个月第一天与最后一天的代码
PHP 缓存实现代码及详细注释
PHP 防恶意刷新实现代码
PHP 全角转半角实现代码
php 格式化数字的时候注意数字的范围
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
php学习之 认清变量的作用范围
PHP 分页原理分析,大家可以看看
php jquery 实现新闻标签分类与无刷新分页
一个比较简单的PHP 分页分组类
又一个php 分页类实现代码
php 全局变量范围分析
php cookie 作用范围C不要在当前页面使用你的cookie
PHP+MYSQL 出现乱码的解决方法
用PHP读取RSS feed的代码
特详细的PHPMYADMIN简明安装教程
phpmyadmin的安装与使用图文教程第1/2页
php-accelerator网站加速PHP缓冲的方法
说明的比较细的php 正则学习实例
php 全文搜索和替换的实现代码
php intval的测试代码发现问题
php+mysql写的简单留言本实例代码
简单示例AJAX结合PHP代码实现登录效果代码
php MySQL与分页效率
php mysql数据库操作分页类
JS实现php的伪分页
php5 mysql分页实例代码
mysql+php分页类(已测)
php基础知识:类与对象(4) 范围解析操作符(::)