PHP搜索MYSQL数据库加分页浏览小结

时间:2022-09-13 19:26:14
PHP搜索加分页浏览小结:
1 分页后再做搜索
2 这里对于url的拼接,以及模糊查询,搜索时候的显示添加,SQL语句的拼接
3 对于页面传递过来的超级链接的变量,如果不存在就要设置,对于可能抛出异常的要加上@屏蔽错误
4 对于查询一般用一些关键字来获取
5 分页显示的limit条件要写好
6 搜索时候的where条件 搜索表单:
<!--- 搜索表单--->
<form action="list3.php" method="get">
标题:<input type="text" name="title" size="10" value="<?php echo @$_GET['title'];?>"/> 
关键字:<input type="text" name="keywords" size="10" value="<?php echo @$_GET['keywords'];?>"/> 
作者:<input type="text" name="author" size="10" value="<?php echo @$_GET['author'];?>"/> 
<input type="submit" value="搜索"/>
<input type="button" value="全部信息" onclick="window.location='list3.php'"/>
</form>
<!----------------> 分页封装
<?php
//=======================
//封装搜索的信息
//定义一个封装搜索条件的数组变量
$wherelist=array();
//定义一个封装搜索的url,用于放置到url后面作为参数
$urllist=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']}";
}
//组装搜索条件
//将数组合并成字符串用implode();
if(count($wherelist)>0){
$where=" where ".implode(" and ",$wherelist);
$url=@"&".implode("&",$urllist);
}
//echo @$where;
//echo @$url; //=======================
?> 3 分页处理
<?php
//=====插入分页处理代码=====
//1 定义分页的变量
$page=isset($_GET['page'])?$_GET['page']:1;//当前页数,默认为1
$pageSize=4; //页大小
$maxRows=""; //最大数据条数
$maxPages=""; //最大页数 //获取最大数据条数
@$sql="select count(*) from news {$where}";
$res=mysql_query($sql,$conn);
$maxRows=mysql_result($res,0,0);//定位从结果集中获取总数据的条数,就是获取第一个单元格中的值 //3 计算出最大页数
$maxPages=ceil($maxRows/$pageSize);//进一取整获取最大页数,7/3;
//4 判断页数是否越界,判断是否有效
if($page>$maxPages){
$page=$maxPages;
//判断是否超出了最大页
}
if($page<1){
$page=1;
}
//拼接$sql,限制每页显示的条数
$limit=" limit ".(($page-1)*$pageSize).",{$pageSize}";
//起始位置是当前页减1乘以每页显示的条数
//==========分页封装结束==============
@$sql="select * from news {$where} order by addtime desc {$limit}";
//limit 0,3表示从第一条记录到第三条记录
//将最新的新闻先显示出来
$result=@mysql_query($sql,$conn);?> 具体实例:新闻搜索和分页程序:
搜索和分页功能如下: list3.php 完整代码
<?php
header("content-Type:text/html;charset=utf-8");
?>
<?php
require("menu.php");
require("dbconfig.php");
?>
<title>新闻信息管理系统</title>
<script>
function dodel(id){
//判断是否要删除
if(confirm("确定要删除吗?")){
window.location="action.php?action=del&id="+id;
} } </script>
<center>
<h2>搜索和分页浏览新闻</h2>
<!--- 搜索表单--->
<form action="list3.php" method="get">
标题:<input type="text" name="title" size="10" value="<?php echo @$_GET['title'];?>"/> 
关键字:<input type="text" name="keywords" size="10" value="<?php echo @$_GET['keywords'];?>"/> 
作者:<input type="text" name="author" size="10" value="<?php echo @$_GET['author'];?>"/> 
<input type="submit" value="搜索"/>
<input type="button" value="全部信息" onclick="window.location='list3.php'"/>
</form>
<!---------------->
<table border="1" cellpadding="2" cellspacing="0">
<tr><th>新闻id号</th><th>新闻标题</th><th>发布者</th>
<th>关键字</th><th>添加时间</th><th>新闻内容</th><th>操作</th>
</tr>
<?php
//=======================
//封装搜索的信息
//定义一个封装搜索条件的数组变量
$wherelist=array();
//定义一个封装搜索的url,用于放置到url后面作为参数
$urllist=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']}";
}
//组装搜索条件
//将数组合并成字符串用implode();
if(count($wherelist)>0){
$where=" where ".implode(" and ",$wherelist);
$url=@"&".implode("&",$urllist);
}
//echo @$where;
//echo @$url; //=======================
?>
<?php
//=====插入分页处理代码=====
//1 定义分页的变量
$page=isset($_GET['page'])?$_GET['page']:1;//当前页数,默认为1
$pageSize=4; //页大小
$maxRows=""; //最大数据条数
$maxPages=""; //最大页数 //获取最大数据条数
@$sql="select count(*) from news {$where}";
$res=mysql_query($sql,$conn);
$maxRows=mysql_result($res,0,0);//定位从结果集中获取总数据的条数,就是获取第一个单元格中的值 //3 计算出最大页数
$maxPages=ceil($maxRows/$pageSize);//进一取整获取最大页数,7/3;
//4 判断页数是否越界,判断是否有效
if($page>$maxPages){
$page=$maxPages;
//判断是否超出了最大页
}
if($page<1){
$page=1;
}
//拼接$sql,限制每页显示的条数
$limit=" limit ".(($page-1)*$pageSize).",{$pageSize}";
//起始位置是当前页减1乘以每页显示的条数
//==========分页封装结束==============
@$sql="select * from news {$where} order by addtime desc {$limit}";
//limit 0,3表示从第一条记录到第三条记录
//将最新的新闻先显示出来
$result=@mysql_query($sql,$conn);
while($row=@mysql_fetch_assoc($result)){
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['title']}</td>";
echo "<td>{$row['author']}</td>";
echo "<td>{$row['keywords']}</td>";
echo "<td>".date("Y-m-d H:i:s",$row['addtime'])."</td>";
echo "<td>{$row['content']}</td>";
echo "<td><a href='javascript:dodel({$row['id']})'>删除</a> | <a href='edit.php?id={$row['id']}'>修改 </a></td>";
echo "</tr>"; }
//释放结果集
@mysql_free_result($result);
mysql_close($conn);
?>
</table>
<?php
//显示当前页数值,上一页和下一页
echo "<br/>";
echo "当前页 {$page}/{$maxPages}页 共计:{$maxRows}条  ";?>
<a href="list3.php?page=1<?php echo @$url;?>">首页</a>  
<a href="list3.php?page=<?php echo ($page-1).@$url;?>">上一页</a>  
<!--这里用分割符号分离出来添加页数--->
<a href="list3.php?page=<?php echo ($page+1).@$url;?>">下一页</a>  
<a href="list3.php?page=<?php echo $maxPages.@$url;?>">尾页</a> </center>

PHP搜索MYSQL数据库加分页浏览小结的更多相关文章

  1. 分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)

             分页查询信息       使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目 ...

  2. lucene索引并搜索mysql数据库&lbrack;转&rsqb;

    由于对lucene比较感兴趣,本人在网上找了点资料,终于成功地用lucene对mysql数据库进行索引创建并成功搜索,先总结如下: 首先介绍一个jdbc工具类,用于得到Connection对象: im ...

  3. MySQL数据库实现分页查询的SQL语句写法!

    一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的 ...

  4. PHP&plus;mysql数据库简单分页实例-sql分页

    前几天冷月写了一篇博文<php基础编程-php连接mysql数据库-mysqli的简单使用>,很多小伙伴在学习后都知道了php与mysql数据库的连接,今天冷月分享一个简单的分页实例 首先 ...

  5. PDO连接mysql数据库加载慢

    今天在使用PDO连接mysql操作数据库的时候,发现速度特别慢,都1~2s的时间,不知道怎么回事,后来一步一步排除到new PDO 导致过慢的原因, 这个尴尬了...,调试了半天都没想到问下度娘,才知 ...

  6. mysql数据库limit分页,排序操作

    看到网上很多朋友在问,limit分页之后按照字段属性排序的问题,在这里分享一下我的用法: 1.网上答案: 每页显示5个,显示第三页信息,按照年龄从小到大排序 select * from student ...

  7. PreparedStatement 基于mysql数据库做分页查询和统计查询

    分页查询: 统计查询:

  8. oracle&comma;mysql&comma;SqlServer三种数据库的分页查询的实例。

    MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如 ...

  9. MySQL、SQLServer2000&lpar;及SQLServer2005&rpar;和ORCALE三种数据库实现分页查询的方法

    在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应 ...

随机推荐

  1. Java 多线程 自定义线程辅助

    之前的文章我介绍了C#版本的多线程和自定义线程处理器. 接下来我们来看看Java版本的呢 java 的线程和C#的线程有点区别,java的线程没有是否是后台线程一说,具体原因是java的线程是jvm的 ...

  2. 《C&plus;&plus; Primer 4th》读书笔记 第9章-顺序容器

    原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3936460.html

  3. hdoj 2222

    http://acm.hdu.edu.cn/showproblem.php?pid=2222 第一道 AC自动机.....trie树的建立 和 AC自动机的查询,,可作模版... 解题思路:AC的应用 ...

  4. JavaScript语法作业

    相亲过程:你有房子么?你有钱么?你有能力么?[结婚吧][先买房子在结婚][先赚钱再买房子再结婚]都没有[拜拜~~]利用if嵌套做相亲过程 <script> var a=prompt(&qu ...

  5. selenium怎么操作web页面常见的元素

    总结一下selenium怎么操作web页面常见的元素. 主要有: 上传 alter dialog prompt dialog confirm dialog select list radio box ...

  6. Unity入门&amp&semi;物理引擎

    一.Unity六大模块 首先,Unity界面有六大模块,分别是:Hierarchy,Scene,Game,Inspector,Project,Console.下面对这六个视图的功能进行详解. 1.Hi ...

  7. 安装了nodejs后在命令行运行npm报错:Error&colon; Cannot find module &&num;39&semi;internal&sol;util&sol;types&&num;39&semi;

    报错如下图所示: 解决方法:删除目录“C:\Users\wls\AppData\Roaming\npm\node_modules”下的npm文件夹

  8. 20181016-4 Alpha阶段第1周&sol;共2周 Scrum立会报告&plus;燃尽图 04

    此作业要求https://edu.cnblogs.com/campus/nenu/2018fall/homework/2248 Scrum master:徐常实 一.小组介绍 组长:王一可 组员:范靖 ...

  9. Spring&lowbar;day02--课程安排&lowbar;Spring的bean管理(注解)&lpar;注解创建对象&sol;注入属性、配置文件和注解混合使用&rpar;

    Spring_day02 上节内容回顾 今天内容介绍 Spring的bean管理(注解) 注解介绍 Spring注解开发准备 注解创建对象 注解注入属性 配置文件和注解混合使用 AOP概念 AOP原理 ...

  10. linux下进程cpu占用过高问题定位方法

    背景 记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高 ...