PHP开发实例大全(提高卷) 中文完整pdf扫描版[244MB]
一、每次动态显示11条其他隐藏
调用pages()函数分页样式如下图:
调用pages1()函数分页样式如下图:
调用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条其他隐藏