PHP分页技术原理
2016-12-07 14:20
316 查看
分页函数
//分页函数
function _page($_sql,$_size){
global $_pagenum,$_pagesize,$_page,$_pageabsolute,$_num;
//NO1、获取第几页
if(isset($_GET['page'])){
$_page=$_GET['page'];
if(empty($_page)||$_page<0||!is_numeric($_page)){
$_page=1;
}else{
$_page=intval($_page);
}
}else{
$_page=1;
}
$_pagesize=$_size;
//NO2、每页显示多少条
$_num=_num_rows(_query($_sql));//获取总共有几条数据
//NO3、设置总共有几页
if($_num==0){//解决数据库清0的问题
$_pageabsolute=1;
}else{
$_pageabsolute=ceil($_num/$_pagesize);//总共页码
}
if($_page>$_pageabsolute){
$_page=$_pageabsolute;
}
//NO4、设置 SQL LIMIT 开始的第几条数据
$_pagenum=($_page-1)*$_pagesize;
}
分页布局
//分页样式#page_num{ height:20px; clear:both; padding:20px 0; position:relative;/*设置相对点*/}#page_num ul{ position:absolute;/*绝对点*/ right:30px; height:20px;
}#page_num ul li{ float:left; width:26px; height:20px;}#page_num ul li a{ /*本身是内敛元素,转换成区块才能操作它*/ display:block; /*也可以不要宽高,因为继承li元素*/ width:20px; height:20px; line-height:20px; border:1px solid #333; text-align:center; text-decoration:none;/*去掉下划线*/}#page_num ul li a:hover,#page_num ul li a.selected{ background:#666;/*深灰色*/ font-weight:bold;/*字体加粗*/ color:#fff;/*深灰色*/}#page_text{ font-size:13px; height:20px; clear:both; padding:20px 0;}#page_text ul{ text-align:center;}#page_text ul li{ display:inline;}#page_text ul li a{ /*color: #0066ff ;;*/ /*text-decoration:none;*//*去掉下划线*/}#page_text ul li a:hover{ /*background-color:#f3f3f3;*/ /*color:#ff0000;*/ font-weight:bold;/*字体加粗*/}
分页页面调用
global $_pagesize,$_pagenum,$_system;
_page("SELECT tg_id FROM tg_article",8);//参数1,获取总条数SQL语句,参数2,每页几条
显示文章列表
$_result = _query("SELECT * FROM tg_article ORDER BY tg_post_time DESC LIMIT $_pagenum,$_pagesize");
require 'article_li.php';
_free_result($_result);
_paging(2);//显示分页
//分页函数
function _page($_sql,$_size){
global $_pagenum,$_pagesize,$_page,$_pageabsolute,$_num;
//NO1、获取第几页
if(isset($_GET['page'])){
$_page=$_GET['page'];
if(empty($_page)||$_page<0||!is_numeric($_page)){
$_page=1;
}else{
$_page=intval($_page);
}
}else{
$_page=1;
}
$_pagesize=$_size;
//NO2、每页显示多少条
$_num=_num_rows(_query($_sql));//获取总共有几条数据
//NO3、设置总共有几页
if($_num==0){//解决数据库清0的问题
$_pageabsolute=1;
}else{
$_pageabsolute=ceil($_num/$_pagesize);//总共页码
}
if($_page>$_pageabsolute){
$_page=$_pageabsolute;
}
//NO4、设置 SQL LIMIT 开始的第几条数据
$_pagenum=($_page-1)*$_pagesize;
}
分页布局
//分页布局 function _paging($_type){ global $_pageabsolute,$_page,$_num; if($_type==1){ echo '<div id="page_num">'; echo '<ul>'; for($i=0;$i<$_pageabsolute;$i++){ if($_page==$i+1){ //选中状态时加样式 echo '<li><a href="'.DE_THIS.'.php?page='.($i+1).'" class="selected">'.($i+1).'</a></li>'; }else{ //未选中状态显示普通样式 echo '<li><a href="'.DE_THIS.'.php?page='.($i+1).'">'.($i+1).'</a></li>'; } } echo '</ul>'; echo '</div>'; }elseif($_type==2){ echo '<div id="page_text">'; echo '<ul>'; if ($_page!=1){ $_str='|'; }else{ $_str=''; } echo '<li>'.$_page.'/'.$_pageabsolute.' |</li>'; echo '<li> ( <strong>'.$_num.'</strong> ) '.$_str.'</li>'; if($_page==1){ }else{ echo '<li><a href="'.DE_THIS.'.php?page='.($_page-1).'"> 上一页 </a></li>'; echo '|'; echo '<li><a href="'.DE_THIS.'.php"> 首页 </a></li>'; } if($_page!=1&&$_page!=$_pageabsolute)echo '|'; if($_page==$_pageabsolute){ }else{ echo '|'; echo '<li><a href="'.DE_THIS.'.php?page='.($_page+1).'"> 下一页 </a></li>'; echo '|'; echo '<li><a href="'.DE_THIS.'.php?page='.($_pageabsolute).'"> 尾页 </a></li>'; } echo '</ul>'; echo '</div>'; } }
//分页样式#page_num{ height:20px; clear:both; padding:20px 0; position:relative;/*设置相对点*/}#page_num ul{ position:absolute;/*绝对点*/ right:30px; height:20px;
}#page_num ul li{ float:left; width:26px; height:20px;}#page_num ul li a{ /*本身是内敛元素,转换成区块才能操作它*/ display:block; /*也可以不要宽高,因为继承li元素*/ width:20px; height:20px; line-height:20px; border:1px solid #333; text-align:center; text-decoration:none;/*去掉下划线*/}#page_num ul li a:hover,#page_num ul li a.selected{ background:#666;/*深灰色*/ font-weight:bold;/*字体加粗*/ color:#fff;/*深灰色*/}#page_text{ font-size:13px; height:20px; clear:both; padding:20px 0;}#page_text ul{ text-align:center;}#page_text ul li{ display:inline;}#page_text ul li a{ /*color: #0066ff ;;*/ /*text-decoration:none;*//*去掉下划线*/}#page_text ul li a:hover{ /*background-color:#f3f3f3;*/ /*color:#ff0000;*/ font-weight:bold;/*字体加粗*/}
分页页面调用
global $_pagesize,$_pagenum,$_system;
_page("SELECT tg_id FROM tg_article",8);//参数1,获取总条数SQL语句,参数2,每页几条
显示文章列表
$_result = _query("SELECT * FROM tg_article ORDER BY tg_post_time DESC LIMIT $_pagenum,$_pagesize");
require 'article_li.php';
_free_result($_result);
_paging(2);//显示分页
相关文章推荐
- php扩展AMQP,安装报错解决
- php的排序
- 修改PHP 上传文件大小限制
- PHP 连接 MySQL
- 【Swoole】当SWOOLE遇上PHP
- Serv-U FTP Server 中文版 11.0.0.4安装及使用说明
- php数组(array)输出的三种形式详解
- php 函数随记
- TP中手动加载类库
- PHP each() 函数
- 10个最好的免费FTP客户端
- PHP 过滤器
- PHP session
- PHP的几种排序方法
- PHP cookie
- PHP 文件上传
- php内核学习(列出地址,以供自己学习)
- Zabbix的安装与部署---问题处理(php65.6.28 mysqli 报错误 处理)
- JMeter学习-035-JMeter调试工具之二---Debug PostProcessor
- PHP中PSR-[0-4]规范