900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > php新闻列表页模块 PHP开发简单新闻发布系统之新闻列表页整体功能实现

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

时间:2023-01-15 14:40:16

相关推荐

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

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

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

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

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

$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*fromnewwheretitlelike'%$keyword%'orcontentlike'%$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=llimit0

//page=2limit3

//page=3limit6

$sql="select*fromnewwheretitlelike'%$keyword%'orcontentlike'%$keyword%'limit{$limitFrom},{$limitNews}";

$sqlCount="selectcount(*)fromnewwheretitlelike'%$keyword%'orcontentlike'%$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$countPage;?>页|查到<?php echo$countNews;?>条记录

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

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。