网络中流行的PHP分页效果

 

网络中流行的PHP分页效果
 
   
< meta http - equiv = " content-type " content = " text/html;charset=gbk " >
< 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
/*
* author:php100.com 论坛 nicholas_ng
*/
function page( $page , $total , $phpfile , $pagesize = 3 , $pagelen = 3 ){
$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 .= ' </div> ' ;
return array ( ' pagecode ' => $pagecode , ' sqllimit ' => ' limit ' . $offset . ' , ' . $pagesize );
}
?>



=========== PHP100提供 ====== 演示 ================

<? php
$phpfile = ' index.php ' ; // 页面文件名
$page = isset ( $_GET [ ' page ' ]) ? $_GET [ ' page ' ] : 1 ; // 默认页码
$db = mysql_connect ( ' localhost ' , ' root ' , ' ServerSafe.cn ' ); // 链接数据库
mysql_select_db ( ' userinfo ' , $db ); // 选择数据库
$counts = mysql_num_rows ( mysql_query ( ' select `uid` from stuinfo ' , $db )); // 获取需要的数据总条数
$sql = ' select * from stuinfo ' ; // 定义查询语句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代码
?>

 

转载于:https://www.cnblogs.com/xylxq1925/articles/1887757.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值