制作分页、页码

一、分页制作

  1.设置页大小(即在一页内显示多少条数据)

  2.计算记录总数(共有多少条数据)

  3.计算页总数(共需多少页来显示所有数据)

  4.获取当前页码

  5.过滤越界

  6.组装sql语句

  7.准备sql语句

  8.发送sql语句

  9.添加分页的超链接

//1.设置页大小(即在一页内显示多少条数据)
$page_size=#;
//2.计算记录总数(共有多少条数据)
$sql="select count(*) from table_name";
$res=mysql_query($sql);
$data=mysql_fetch_assoc($res);
mysql_free_result($res);
$count=$data['count(*)'];
if($count==0){
    //当无数据时
    $page_count=1;
    $page_num=1;
    $limit="";
}else{
    //3.计算页总数(共需多少页来显示所有数据)
    $page_count=ceil($count/$page_size);  //进一法取整
    //4.获取当前页码
    $page_num=empty($_GET['page'])?1:$_GET['page'];
    //5.过滤越界
    if($page_num<1){
        $page_num=1;
    }elseif($page_num>$page_count){
        $page_num=$page_count;
    }
    //6.组装sql语句
    $limit=" limit ".($page_num-1)*$page_size.",".$page_size;
}
//7.准备sql语句
$sql="select * from table_name order by id".$limit;
//8.发送sql语句
$res=mysql_query($sql);
//9.添加分页的超链接      
?>

<a href="?page=1">首页</a>
<a href="?page=<?php echo ($page_num-1);?>">上一页</a>
<a href="?page=<?php echo ($page_num+1);?>">下一页</a>
<a href="?page=<?php echo ($page_count);?>">尾页</a>
当前第<?php echo $page_num;?>页
共<?php echo $page_count;?>页
本页有<?php
    if($count==0){
        echo $count;
    }else{
        echo ($page_num!=$page_count || $count%$page_size==0)?$page_size:($count%$page_size);
    }
?>条数据
共<?php echo $count;?>条数据

二、页码制作

例1:

  显示5页的页码

  

if($page_count<=5){
    for($i=1;$i<=$page_count;$i++){
        echo "<a href='?page=".$i."'>".$i."</a>";
    }
}else{
    if($page_num<=3){
        for($i=1;$i<=5;$i++){
            echo "<a href='?page=".$i."'>".$i."</a>";
        }
    }else{
        if($page_num+2<=$page_count){
            for($i=($page_num-2);$i<=($page_num+2);$i++){
                echo "<a href='?page=".$i."'>".$i."</a>";
            }
        }else{
            for($i=($page_count-4);$i<=$page_count;$i++){
                echo "<a href='?page=".$i."'>".$i."</a>";
            }
        }
    }
}

//要使页码中的当前页颜色突出,在echo时加判断
if($i==$page_num){
    echo "<a style='color:red;' href='?page=".$i."'>".$i."</a>";
}else{
    echo "<a href='?page=".$i."'>".$i."</a>";
}

例2:

  显示10页的页码

  

if($page_count<=10){
    for($i=1;$i<=$page_count;$i++){
        echo "<a href='?page=".$i."'>".$i."</a>";
    }
}else{
    if($page_num<=6){
        for($i=1;$i<=10;$i++){
            echo "<a href='?page=".$i."'>".$i."</a>";
        }
    }else{
        if(($page_num+4)<=$page_count){
            for($i=($page_num-5);$i<=($page_num+4);$i++){
                echo "<a href='?page=".$i."'>".$i."</a>";
            }
        }else{
            for($i=($page_count-9);$i<=$page_count;$i++){
                echo "<a href='?page=".$i."'>".$i."</a>";
            }
        }
    }
}
原文地址:https://www.cnblogs.com/zhouwanqiu/p/9178731.html