php 新闻页数,PHP开发简单新闻发布系统之简单分页功能介绍

分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:

每页显示新闻数量:$limitNews

获取当前的分页数:$page

由于计算机语言默认从0开始获取记录

如果设置每页显示数量为3,$limitNews = 3,

那么第一页 $page = 1 就会显示 0, 1, 2  三条记录

第二页 $page = 2 就会显示 3, 4, 5  三条记录

第三页 $page = 3 就会显示 6, 7, 8 三条记录

以此类推。。。。。。。。。

设置一个参数 $limitFrom 从第几条数据开始读取

从上面的规律就可以得到:

$limitFrom = ($page - 1) * $limitNews;

就会分别从第0 ,3, 6条开始获取数据。

下一步我们就需要连接数据库并读取数据

我们仍然使用前面创建的数据库名test和表名new:<?php

$link = mysqli_connect('localhost','uesrname','password','test');

$sql = "select * from new";  //  select * from表示获取全部字段的值

$sqlCount = "select count(*) from new";    //count(*)统计的是结果集的总条数

?>

通过查询语句获取数据库表中的新闻总数量$countNews<?php

$retQuery = mysqli_query($link, $sqlCount);  //查询数量sql语句

$retCount = mysqli_fetch_array($retQuery);   //获取数量

$count = $retCount[0]?$retCount[0]:0;   //判断获取的新闻数量

$countNews = $count;

?>

这里需要给到另一个参数$countPage 总共显示多少页

现在就出现另一个问题,如果有10条新闻纪录,每页显示3条纪录,那剩余的一条怎么办?

我们就要使用%取余来进行判断:<?php

$countPage = $countNews%$limitNews;   //求余数获取分页数量能否被除尽

if(($countPage) > 0) {  //获取的页数有余

$countPage = ceil($countNews/$limitNews);

// ceil() 函数向上舍入为最接近的整数,除不尽则取整数+1页, 10个新闻每个页面显示3个,成3个页面,剩余1个单独成1个页面,这样总共有4个页面

} else {

$countPage = $countNews/$limitNews;  //如果是9个新闻每个页面显示3个,成3个页面

}

?>

其他参数上一页$prev,下一页$next;

在分页功能中经常会有点击“上一页”和点击“下一页”进行跳转

先说一下PHP代码功能实现思路:

上一页$prev,就是当前页$page -1 一步一步往前页跳转,当当前页$page为第一页的时候再往前跳转就为第0页了,这显然会出现bug,

这里我们就需要给它一个设定,当当前页$page为第一页的时候点击“上一页”就设定它显示为第一页,不在往前跳转了。

$prev = ($page - 1 <= 0 )?1:$page-1;

下一页$next, 就是当前页$page -1 一步一步往后页跳转,问题在于当$page为最后一页的时候点击“下一页”再往后跳转,

跟上一页类似,我们设定它就显示最后一页。

$next = ($page + 1 > $countPage)?$countPage:$page+1;

//当前页数要大于总页数的时候就显示当前页。

下面展示一下页面代码:html>

分表页

">|上一页

"><?php  echo $i;?>

">|下一页

注释:上面的代码使用for循环来实现 1,2,3。。。。的页面效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值