我们上一节课给大家讲述了新闻列表的功能制作,上节课中我们新闻列表页下面有一个分页功能!那么我们今天就来给大家介绍一下关于分页实现的制作过程!

首先我们创建一个php文件page.php,这个文件里面我们放制作分页的代码!

第一步:一样,就是连接数据库!// 显示所有的错误

error_reporting(E_ALL & ~E_NOTICE  );

// 连接mysql数据库

$link = mysqli_connect('localhost','root', 'root');

if (!$link) {

echo "connect mysql error!";

exit();

}

// 选中数据库 news为数据库的名字

$db_selected = mysqli_select_db($link, 'news');

if (!$db_selected) {

echo "
selected db error!";

exit();

}

// 设置mysql字符集 为 utf8

$link->query("set names utf8");

第二步:分页功能的实现,在哪个列表里我们就需要查询哪个数据表,我们是新闻的分页,那么我们SQL语句就要查新闻的表// 查询新闻表中的数据

$sql = "select * from new where 1 "; // 查询语句

$sql_count =  "select count(*) as amount from new where 1 "; // 统计总记录数

$sql .= "order by id asc";

接着就是获取总记录条数:// 获取总记录条数

$result_amount = mysqli_query($link, $sql_count);

$arr_amount = mysqli_fetch_array(mysqli_query($link, $sql_count), MYSQL_ASSOC);

// 总记录条数

$amount = $arr_amount['amount'];

然后设置总页数,以及总页码// 每页的记录条数

$page_size = 4;

// 总页码

$max_page = ceil( $amount / $page_size );

大家都知道分页有个公式算法,我们就根据这个公式来计算上一页,下一页,尾页!// 获取当前页码

$page = intval($_GET['page']); // 获取page值,并转成int

if( $page <= 0 || $page > $max_page){  // 如果page值小于0,或是大于最大页码

$page = 1;

}

// 上一页

$pre_page = $page -1;

if( $pre_page 

$pre_page = 1;

}

// 下一页

$next_page = $page + 1;

if( $next_page > $max_page ){ // 如果下一页大于最大页码

$next_page = $max_page;

}

// 分页计算, 计算分页的offset

$offset = ($page - 1 ) * $page_size;

$sql .= " limit $offset, $page_size ";

到这里我们的分页代码就写完了,然后在新闻列表页 引入这个分页文件<?php

include_once "../common/page.php";

?>

最后在新闻列表页的下面找到分页的位置,输出分页

首页

if( $page > 1 ){

?>

">上一页

}

if( $page 

?>

">下一页

}

?>

">末页

/  总页码 <?php  echo $max_page;?>页 当前页码 <?php  echo $page;?>页

033de23103d9cf84f84b23bbbabb4fce.png

OK!分页就制作完成了!

说明:这里我的可能有点麻烦,大家也可以在网站下载分页类,然后直接调用!但是你要知道分页实现的原理~

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐