PHP分页技术原理

来源:互联网 发布:php支付宝sdk下载 编辑:程序博客网 时间:2024/06/14 12:27

分页函数

//分页函数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);//显示分页


0 0
原创粉丝点击