实现PHP搜索加分页


Posted in PHP onOctober 12, 2016

分页显示是浏览大量数据的一种方法。对于初学者来说常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。

所有示例代码均使用php编写。

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示。

请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能。

$wherelist=array();
$urlist=array();
if(!empty($_GET['title']))
{
$wherelist[]=" title like '%".$_GET['title']."%'";
$urllist[]="title=".$_GET['title'];
 
}
if(!empty($_GET['keywords']))
{
$wherelist[]=" keywords like '%".$_GET['keywords']."%'";
$urllist[]="keywords=".$_GET['keywords'];
}if(!empty($_GET['author']))
{
$wherelist[]=" author like '%".$_GET['author']."%'";
$urllist[]="author=".$_GET['author'];
}
$where="";
if(count($wherelist)>0)
{
$where=" where ".implode(' and ',$wherelist);
$url='&'.implode('&',$urllist);
}
//分页的实现原理
//1.获取数据表中总记录数
$sql="select count(*) from news $where ";
$result=mysql_query($sql);
$totalnum=mysql_num_rows($result);
//每页显示条数
$pagesize=5;
//总共有几页
$maxpage=ceil($totalnum/$pagesize);
$page=isset($_GET['page'])?$_GET['page']:1;
if($page <1)
{
$page=1;
}
if($page>$maxpage)
{
$page=$maxpage;
}
$limit=" limit ".($page-1)*$pagesize.",$pagesize";
$sql1="select * from news {$where} {$limit}";
 
//$sql1="select * from news {$where} {$limit}";
$res=mysql_query($sql1);
 
?>
<form action="searchpage.php" method="get">
标题:<input type="text" name="title" value="<?php echo $_GET['title']?>" size="8">
关键字<input type="text" name="keywords" value="<?php echo $_GET['keywords']?>" size="8">
作者:<input type="text" name="author" value="<?php echo $_GET['author']?>" size="8">
 <input type="button" value="查看全部" onclick="window.location='searchpage.php'">
 <input type="submit" value="搜索">
</form>
 
<table border="1" width="1000" align="center">
 <tr>
 <td>编号</td>
 <td>标题</td>
 <td>关键字</td>
 <td>作者</td>
 <td>日期</td>
 <td>内容</td>
 </tr>
<?php while($row= mysql_fetch_assoc($res)){?>
<tr>
 <td><?php echo $row['id'] ?></td>
 <td><?php echo $row['title'] ?></td>
 <td><?php echo $row['keywords'] ?></td>
 <td><?php echo $row['author'] ?></td>
 <td><?php echo date("Y-m-d H:i:s",$row['addtime']) ?></td>
 <td><?php echo $row['content'] ?></td>
 </tr>
<?php }?>
<tr>
 <td colspan="6">
<?php
 echo " 当前{$page}/{$maxpage}页 共{$totalnum}条";
echo " <a href='searchpage.php?page=1{$url}'>首页</a> ";
echo "<a href='searchpage.php?page=".($page-1)."{$url}'>上一页</a>";
echo "<a href='searchpage.php?page=".($page+1)."{$url}'>下一页</a>";
echo " <a href='searchpage.php?page={$maxpage}{$url}'>尾页</a> ";
 
?>
</td>
 </tr>
</table>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
简单易用的计数器(数据库)
Oct 09 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
php中字符串和正则表达式详解
Oct 23 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
php截取字符串函数分享
Feb 02 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 PHP
如何使用PHP给图片加水印
Oct 12 #PHP
php版微信数据统计接口用法示例
Oct 12 #PHP
php版微信js-sdk支付接口类用法示例
Oct 12 #PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 #PHP
如何使用php等比例缩放图片
Oct 12 #PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 #PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 #PHP
You might like
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
Python脚本实现下载合并SAE日志
2015/02/10 Python
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
Python用模块pytz来转换时区
2016/08/19 Python
Python探索之自定义实现线程池
2017/10/27 Python
django实现用户登陆功能详解
2017/12/11 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
计算机专业推荐信范文
2013/11/27 职场文书
培训自我鉴定
2014/01/31 职场文书
幼儿园春季开学寄语
2014/04/03 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
小学运动会报道稿
2014/10/04 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
李强优秀员工观后感
2015/06/16 职场文书