最新消息: 新版网站上线了!!!

php分页 动态显示11条其他隐藏

一、每次动态显示11条其他隐藏

调用pages()函数分页样式如下图:

wps2E47.tmp.jpeg

调用pages1()函数分页样式如下图:

2.jpeg

调用pages()函数结合mysql数据库查询,完成分页下数据信息显示  

前提说明:分页的核心原理是mysql查询语句中使用limit子语句和自定义的pages()函数,我的这个实例中通过mysql获取总条数和数据信息只做参考,重点是掌握pages()函数,因为mysql这部分,根据跟人代码的前后场景可能不同,我的这里使用了面向对象的形式。你可以自己在这里链接mysql数据库,让后自己写select查询等等,最终吧自己获取的$total$page$pagesize三个值传递到pages()函数即可,获取分页样式

//列表分页

$total = $this->db->count();     //信息总条数为:14条
$pagesize = 1;      //每页显示条数:1条
$page = max(intval($_GET['page']), 1);  //当前页码
$offset = $pagesize*($page-1);     //每页开头信息的位置,偏移量
$house_data = $this->db->select('','*',"$offset, $pagesize");   //根据分页显示每页对应的数据信息
$datas = array();
foreach($house as $hk=>$hv){
foreach($house_data as $hdk=>$hdv){
if($hv['id']==$hdv['id']){
$datas[$hk]['house_name']=$hv['house_name'];
$datas[$hk]['thumb']=$hv['thumb'];
$datas[$hk]['address']=$hv['address'];
$datas[$hk]['estate']=$hv['estate'];
$datas[$hk]['style']=$hv['style'];
$datas[$hk]['price']=$hv['price'];
$datas[$hk]['yuntar']=$hdv['yuntar'];
}
}
}

     $pages = pages($total, $page, $pagesize);    //这里调用pages()函数,显示分页的样式

//$pages1 = pages1($total, $page, $pagesize); 或者这里也可以调用pages1()显示分页样式

在下面我定义了pages()pages1()两个函数,都可以实现分页样式显示,只是内部代码逻辑有所差别,这里把2个函数都罗列出来,提供大家参考

 

定义pages()函数

/**
* $num 总条数:我的测试条数是14条
* $curr_page 当前分页
* $perpage 每页显示条数默认20条
* setpages 默认每页显示6个页码链接比如:上一页 1..[ 3 4 5 6 7 8 9 10 11]..14 下一页
*/
function pages($num, $curr_page, $perpage = 20,$setpages = 10){
if($num > $perpage) {
$page = $setpages;     //显示页码数量
$offset = ceil($setpages/2-1);     //计算偏移量
$pages = ceil($num / $perpage);    //总页数
$from = $curr_page - $offset;      //通过 当前页-偏移量=获取分页区间的起始页码
$to = $curr_page + $offset;   //通过 当前页+偏移量=获取分页区间的结束页码
if($page >= $pages) {  //如果按照区块显示的页数比总页数多或者相等时,就循环显示出所有页码
$from = 2;
$to = $pages-1;
} else {
if($from <= 1) {    //页码区间起始位小于等于1时
$from = 2;
$to = $page-1;
}  elseif($to >= $pages) {  //页码区间末位大于等于总页数时
$from = $pages-($page-2);
$to = $pages-1;
}
$more = 1;
}
$multipage .= '<a>'.$num.L('page_item').'</a>';
if($curr_page>0) {
$prvpage = ($curr_page-1)>0 ? ($curr_page-1) : 1;  
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$prvpage.'">上一页</a>';
if($curr_page==1) {
$multipage .= ' <span>1</span>';
} elseif($curr_page>6 && $more) {
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page=1">1</a>..';
} else {
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page=1">1</a>';
}
}
//动态显示页码区间
for($i = $from; $i <= $to; $i++) {
if($i != $curr_page) {
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$i.'">'.$i.'</a>';
} else {
$multipage .= ' <span>'.$i.'</span>';
}
}
$nextpage = ($curr_page+1)<$pages ? ($curr_page+1) : $pages;  //点击下一页:如果值大于总页数,就赋值为总页数值
if($curr_page<$pages) {
if($curr_page<$pages-5 && $more) {
$multipage .= ' ..<a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$pages.'">'.$pages.'</a> <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$nextpage.'">下一页</a>';
} else {
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$pages.'">'.$pages.'</a> <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$nextpage.'">下一页</a>';
}
} elseif($curr_page==$pages) {
$multipage .= ' <span>'.$pages.'</span> <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$curr_page.'">下一页</a>';
} else {
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$pages.'">'.$pages.'</a> <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$nextpage.'">下一页</a>';
}
}
return $multipage;
}


定义pages1()函数

/**
* $num 总条数:我的测试条数是14条
* $curr_page 当前分页
* $perpage 每页显示条数默认20条
*/

function pages1($num, $curr_page, $perpage = 20){
$multipage = '';  //定义变量返回分页字符串
if($num>$perpage){
$pages = ceil($num/$perpage);    //计算总分页数
$from = $curr_page - 4;
$to = $curr_page + 4;
if($curr_page>=1 && $curr_page<=6){
for($i=1;$i<=9;$i++){
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$i.'">'.$i.'</a>';  //
} 
$multipage .= '..<a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$num.'">'.$num.'</a>';  //
}
if($curr_page>6 && $curr_page<=$num-4){
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page=1">1</a>..';  //
for($i=$from;$i<=$to;$i++){
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$i.'">'.$i.'</a>';  //
} 
}
if($curr_page>$num-4 && $curr_page<=$num){
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page=1">1</a>..';  //
for($i=$num-9;$i<=$num;$i++){
$multipage .= ' <a href="http://127.0.0.1/house/index.php?m=house&c=index&a=listsx&catid=6&page='.$i.'">'.$i.'</a>';  //
}  
}
}
return $multipage;
}



转载请注明:谷谷点程序 » php分页 动态显示11条其他隐藏