实现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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
php中的时间显示
Jan 18 PHP
php 获取一个月第一天与最后一天的代码
May 16 PHP
Laravel5中contracts详解
Mar 02 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
laravel学习教程之存取器
Jul 30 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
PHP文件上传操作实例详解
Sep 27 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
Sep 13 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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 生成随机验证码图片代码
2010/02/08 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
Vue如何实现验证码输入交互
2020/12/07 Vue.js
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
Python yield 使用浅析
2015/05/28 Python
使用python实现knn算法
2017/12/20 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
Python识别处理照片中的条形码
2020/11/16 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
Java模拟试题
2014/11/10 面试题
会计辞职信范文
2014/01/15 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS