php新闻列表页模块,PHP开发简单新闻发布系统之新闻列表页整体功能实现

前面的章节我们说到了怎么实现简单的分页效果,这里我们就不再详细讲解了。

首先我们要把数据库中的新闻纪录展示出来

这里我们需要用到select 字段名1 , 字段2 , …… from 数据表名 来获取新闻数据<?php

$sql = "select * from new";  //获取所有数据

$result = mysqli_query($link, $sql);

$arr = mysqli_fetch_array($result);  //获取所有数据并用数组形式展示

var_dump($arr);  //可以通过var_dump()打印出来观察

?>

通过while循环把获取的数据库数据展示在HTML页面中

<?php  echo $arr['id'];?><?php  echo $arr['title'];?><?php  echo $arr['author'];?><?php  echo $arr['content'];?><?php  echo $arr['created_at'];?>

">修改

">删除

注释: 修改功能和删除功能通过 id 来实现,具体修改和删除PHP代码实现功能会在后面的章节进行介绍。

">修改

">删除

这里我们增加了一个搜索功能,我们给定一个函数$keyword,通过$_GET来获取数据<?php

$keyword = isset($_GET['keyword'])?$_GET['keyword']:"";  // 判断获取的$keyword

?>

对新闻标题和新闻内容搜索,就要使用SQL语句中的模糊查找

主要通过LIKE(不区分大小写)关键字实现模糊查找。LIKE条件一般用在指定搜索某字段的时候, 通过"%"或者" _" 通配符的作用实现模糊查找功能,通配符可以在字段前面也可以在后面或前后都有。

主要有: like  '关键字%' ,  like  '%关键字', like'%关键字%' 三种。<?php

$sql = "select * from new where title like '%$keyword%' or content like '%$keyword%'limit {$limitFrom}, {$limitNews}";

?>

为了实现分页搜索功能,我们在HTML分页代码中加入了keyword=<?php echo $keyword;?>

&keyword=<?php  echo $keyword;?>">上一页|

&keyword=<?php  echo $keyword;?>"><?php  echo $i;?>

&keyword=<?php  echo $keyword;?>">|下一页

展示完整list.php代码:<?php

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

mysqli_set_charset($link, "utf8");

if (!$link) {

die("连接失败:".mysqli_connect_error());

}

$keyword = isset($_GET['keyword'])?$_GET['keyword']:"";

$page = isset($_GET['page'])?$_GET['page']:1;//获取当前分页数

$limitNews = 3;   //每页显示新闻数量, 这里设置每页显示3条新闻

$countNews = 0;   //总共有多少条新闻

$countPage = 0;   //一共有多少页数

$limitFrom = ($page - 1) * $limitNews;//从第几条数据开始读记录

//每页显示3个

//page = l  limit 0

//page = 2  limit 3

//page = 3  limit 6

$sql = "select * from new where title like '%$keyword%' or content like '%$keyword%'limit {$limitFrom}, {$limitNews}";

$sqlCount = "select count(*) from new where title like '%$keyword%' or content like '%$keyword%'";

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

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

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

$countNews = $count;

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

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

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

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

} else {

$countPage = $countNews/$limitNews;

}

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

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

$result = mysqli_query($link, $sql);

?>

html>

新闻列表页

"/>

编号文章标题文章作者文章内容发布时间修改时间编辑文章
<?php  echo $arr['id'];?><?php  echo $arr['title'];?><?php  echo $arr['author'];?><?php  echo $arr['content'];?><?php  echo $arr['created_at'];?>

">修改

">删除

共<?php  echo $countPage;?>页 |查到<?php  echo $countNews;?>条记录

当前第<?php  echo $page;?>页|

&keyword=<?php  echo $keyword;?>">上一页|

&keyword=<?php  echo $keyword;?>"><?php  echo $i;?>

&keyword=<?php  echo $keyword;?>">|下一页

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值