原生php分页

<?php  
    $link=mysql_connect("localhost","root","admin")or die("connect error!");	//连接数据库
    mysql_select_db("news")or die("select db error!");							//打开数据库news
    $sql="select * from liuyan ";  
    $result=mysql_query($sql);													//查询数据表
    $cols=mysql_num_fields($result);											//总列数  
    $total=mysql_num_rows($result);												//总条数  
    $num=10;																	//每页显示条数   
    $cpage=isset($_GET["page"])?$_GET["page"]:1;								//当前页  
    $pagenum=ceil($total/$num);													//总页数 
    $init=1; 
    $page_len=5; 																//显示页码数
    $max_p=$pagenum;															//最大页数
    $pageoffset=($page_len-1)/2; 												//页码个数左右偏移量
    $offset=($cpage-1)*$num;													//开始去数据的位置  
    $sql="select * from liuyan order by id desc limit {$offset},{$num}";  
    $result=mysql_query($sql);  
    $start=$offset+1;															//开始记录页  
    $end=($cpage==$pagenum)?$total : ($cpage*$num);								//结束记录页  
    $next=($cpage==$pagenum)? 0:($cpage+1);										//下一页  
    $prev=($cpage==1)? 0:($cpage-1);											//上一页  
    echo '<table align="center" width="800" border="1">';  
    while($row=mysql_fetch_row($result)){  
        echo '<tr>';    
        foreach($row as $col){  
            echo '<td>'.$col.'</td>';  
        }  
        echo '</tr>';  
    }  
    echo '<tr><td colspan="'.$cols.'" align="right">';  
    echo "共<b>$total</b>条记录,每页10条,本页显示第<b>{$start}-{$end}</b>条记录 分{$cpage}/{$pagenum}页";  
    if($cpage==1)  
        echo "  首页  ";  
    else  
        echo "  <a href='".$_SERVER['PHP_SELF']."?page=1'>首页</a>  ";  
    if($prev)  
        echo "  <a href='".$_SERVER['PHP_SELF']."?page={$prev}'>上一页</a>  ";  
    else  
        echo "  上一页  "; 
    if($pagenum>$page_len){														//如果当前页小于等于左偏移 
        if($cpage<=$pageoffset){
            $init=1; 
            $max_p = $page_len; 
        }else{																	//如果当前页大于左偏移
            if($cpage+$pageoffset>=$pagenum+1){									//如果当前页码右偏移超出最大分页数 
                $init = $pagenum-$page_len+1;
            }else{																//左右偏移都存在时的计算
                $init = $cpage-$pageoffset; 
                $max_p = $cpage+$pageoffset; 
            }
        }
    } 
    if($cpage>3){
        echo "...&nbsp;&nbsp;&nbsp;";
    }
    //输出页码
    for($i=$init;$i<=$max_p;$i++){
        if($i==$cpage){
            echo " <span style='color:red;'>$i</span>"; 
        } else { 
            echo " <a href='".$_SERVER['PHP_SELF']."?page=".$i."'>$i</a>";
        } 
    }
    if(($cpage+2)<$pagenum){
        echo "&nbsp;&nbsp;&nbsp;...";
    }
    if($next)  
        echo "  <a href='".$_SERVER['PHP_SELF']."?page={$next}'>下一页</a>  ";  
    else  
        echo "  下一页  ";  
    if($cpage==$pagenum)  
        echo "  尾页  ";  
    else  
        echo "  <a href='".$_SERVER['PHP_SELF']."?page={$pagenum}'>尾页</a>  ";  
    echo '</td></tr>';  
    echo '</table>';  
    mysql_close(); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值