1. PHP搜索加分页浏览小结:
  2. 1 分页后再做搜索
  3. 2 这里对于url的拼接,以及模糊查询,搜索时候的显示添加,SQL语句的拼接
  4. 3 对于页面传递过来的超级链接的变量,如果不存在就要设置,对于可能抛出异常的要加上@屏蔽错误
  5. 4 对于查询一般用一些关键字来获取
  6. 5 分页显示的limit条件要写好
  7. 6 搜索时候的where条件
  8.  
  9. 搜索表单:
  10. <!--- 搜索表单--->
  11. <form action="list3.php" method="get">
  12. 标题:<input type="text" name="title" size="10" value="<?php echo @$_GET['title'];?>"/> 
  13. 关键字:<input type="text" name="keywords" size="10" value="<?php echo @$_GET['keywords'];?>"/> 
  14. 作者:<input type="text" name="author" size="10" value="<?php echo @$_GET['author'];?>"/> 
  15. <input type="submit" value="搜索"/>
  16. <input type="button" value="全部信息" onclick="window.location='list3.php'"/>
  17. </form>
  18. <!---------------->
  19.  
  20. 分页封装
  21. <?php
  22. //=======================
  23. //封装搜索的信息
  24. //定义一个封装搜索条件的数组变量
  25. $wherelist=array();
  26. //定义一个封装搜索的url,用于放置到url后面作为参数
  27. $urllist=array();
  28. //判断新闻标题是否有值就封装搜索条件
  29. if(!empty($_GET['title'])){
  30. $wherelist[]="title like '%{$_GET['title']}%'";
  31. $urllist[]="title={$_GET['title']}";
  32.  
  33. }
  34. //判断关键字是否有值就封装搜索条件
  35. if(!empty($_GET['keywords'])){
  36. $wherelist[]="keywords like '%{$_GET['keywords']}%'";
  37. $urllist[]="keywords={$_GET['keywords']}";
  38. }
  39. //判断作者是否有值就封装搜索条件
  40. if(!empty($_GET['author'])){
  41. $wherelist[]="author like '%{$_GET['author']}%'";
  42. $urllist[]="author={$_GET['author']}";
  43. }
  44. //组装搜索条件
  45. //将数组合并成字符串用implode();
  46. if(count($wherelist)>0){
  47. $where=" where ".implode(" and ",$wherelist);
  48. $url=@"&".implode("&",$urllist);
  49. }
  50. //echo @$where;
  51. //echo @$url;
  52.  
  53. //=======================
  54. ?>
  55.  
  56. 3 分页处理
  57. <?php
  58. //=====插入分页处理代码=====
  59. //1 定义分页的变量
  60. $page=isset($_GET['page'])?$_GET['page']:1;//当前页数,默认为1
  61. $pageSize=4; //页大小
  62. $maxRows=""; //最大数据条数
  63. $maxPages=""; //最大页数
  64.  
  65. //获取最大数据条数
  66. @$sql="select count(*) from news {$where}";
  67. $res=mysql_query($sql,$conn);
  68. $maxRows=mysql_result($res,0,0);//定位从结果集中获取总数据的条数,就是获取第一个单元格中的值
  69.  
  70. //3 计算出最大页数
  71. $maxPages=ceil($maxRows/$pageSize);//进一取整获取最大页数,7/3;
  72. //4 判断页数是否越界,判断是否有效
  73. if($page>$maxPages){
  74. $page=$maxPages;
  75. //判断是否超出了最大页
  76. }
  77. if($page<1){
  78. $page=1;
  79. }
  80. //拼接$sql,限制每页显示的条数
  81. $limit=" limit ".(($page-1)*$pageSize).",{$pageSize}";
  82. //起始位置是当前页减1乘以每页显示的条数
  83. //==========分页封装结束==============
  84. @$sql="select * from news {$where} order by addtime desc {$limit}";
  85. //limit 0,3表示从第一条记录到第三条记录
  86. //将最新的新闻先显示出来
  87. $result=@mysql_query($sql,$conn);?>
  88.  
  89. 具体实例:新闻搜索和分页程序:
  90. 搜索和分页功能如下:
  91.  
  92. list3.php 完整代码
  93. <?php
  94. header("content-Type:text/html;charset=utf-8");
  95. ?>
  96. <?php
  97. require("menu.php");
  98. require("dbconfig.php");
  99. ?>
  100. <title>新闻信息管理系统</title>
  101. <script>
  102. function dodel(id){
  103. //判断是否要删除
  104. if(confirm("确定要删除吗?")){
  105. window.location="action.php?action=del&id="+id;
  106. }
  107.  
  108. }
  109.  
  110. </script>
  111. <center>
  112. <h2>搜索和分页浏览新闻</h2>
  113. <!--- 搜索表单--->
  114. <form action="list3.php" method="get">
  115. 标题:<input type="text" name="title" size="10" value="<?php echo @$_GET['title'];?>"/> 
  116. 关键字:<input type="text" name="keywords" size="10" value="<?php echo @$_GET['keywords'];?>"/> 
  117. 作者:<input type="text" name="author" size="10" value="<?php echo @$_GET['author'];?>"/> 
  118. <input type="submit" value="搜索"/>
  119. <input type="button" value="全部信息" onclick="window.location='list3.php'"/>
  120. </form>
  121. <!---------------->
  122. <table border="1" cellpadding="2" cellspacing="0">
  123. <tr><th>新闻id号</th><th>新闻标题</th><th>发布者</th>
  124. <th>关键字</th><th>添加时间</th><th>新闻内容</th><th>操作</th>
  125. </tr>
  126. <?php
  127. //=======================
  128. //封装搜索的信息
  129. //定义一个封装搜索条件的数组变量
  130. $wherelist=array();
  131. //定义一个封装搜索的url,用于放置到url后面作为参数
  132. $urllist=array();
  133. //判断新闻标题是否有值就封装搜索条件
  134. if(!empty($_GET['title'])){
  135. $wherelist[]="title like '%{$_GET['title']}%'";
  136. $urllist[]="title={$_GET['title']}";
  137.  
  138. }
  139. //判断关键字是否有值就封装搜索条件
  140. if(!empty($_GET['keywords'])){
  141. $wherelist[]="keywords like '%{$_GET['keywords']}%'";
  142. $urllist[]="keywords={$_GET['keywords']}";
  143. }
  144. //判断作者是否有值就封装搜索条件
  145. if(!empty($_GET['author'])){
  146. $wherelist[]="author like '%{$_GET['author']}%'";
  147. $urllist[]="author={$_GET['author']}";
  148. }
  149. //组装搜索条件
  150. //将数组合并成字符串用implode();
  151. if(count($wherelist)>0){
  152. $where=" where ".implode(" and ",$wherelist);
  153. $url=@"&".implode("&",$urllist);
  154. }
  155. //echo @$where;
  156. //echo @$url;
  157.  
  158. //=======================
  159. ?>
  160. <?php
  161. //=====插入分页处理代码=====
  162. //1 定义分页的变量
  163. $page=isset($_GET['page'])?$_GET['page']:1;//当前页数,默认为1
  164. $pageSize=4; //页大小
  165. $maxRows=""; //最大数据条数
  166. $maxPages=""; //最大页数
  167.  
  168. //获取最大数据条数
  169. @$sql="select count(*) from news {$where}";
  170. $res=mysql_query($sql,$conn);
  171. $maxRows=mysql_result($res,0,0);//定位从结果集中获取总数据的条数,就是获取第一个单元格中的值
  172.  
  173. //3 计算出最大页数
  174. $maxPages=ceil($maxRows/$pageSize);//进一取整获取最大页数,7/3;
  175. //4 判断页数是否越界,判断是否有效
  176. if($page>$maxPages){
  177. $page=$maxPages;
  178. //判断是否超出了最大页
  179. }
  180. if($page<1){
  181. $page=1;
  182. }
  183. //拼接$sql,限制每页显示的条数
  184. $limit=" limit ".(($page-1)*$pageSize).",{$pageSize}";
  185. //起始位置是当前页减1乘以每页显示的条数
  186. //==========分页封装结束==============
  187. @$sql="select * from news {$where} order by addtime desc {$limit}";
  188. //limit 0,3表示从第一条记录到第三条记录
  189. //将最新的新闻先显示出来
  190. $result=@mysql_query($sql,$conn);
  191. while($row=@mysql_fetch_assoc($result)){
  192. echo "<tr>";
  193. echo "<td>{$row['id']}</td>";
  194. echo "<td>{$row['title']}</td>";
  195. echo "<td>{$row['author']}</td>";
  196. echo "<td>{$row['keywords']}</td>";
  197. echo "<td>".date("Y-m-d H:i:s",$row['addtime'])."</td>";
  198. echo "<td>{$row['content']}</td>";
  199. echo "<td><a href='javascript:dodel({$row['id']})'>删除</a> | <a href='edit.php?id={$row['id']}'>修改
  200.  
  201. </a></td>";
  202. echo "</tr>";
  203.  
  204. }
  205. //释放结果集
  206. @mysql_free_result($result);
  207. mysql_close($conn);
  208. ?>
  209. </table>
  210. <?php
  211. //显示当前页数值,上一页和下一页
  212. echo "<br/>";
  213. echo "当前页 {$page}/{$maxPages}页 共计:{$maxRows}条  ";?>
  214. <a href="list3.php?page=1<?php echo @$url;?>">首页</a>  
  215. <a href="list3.php?page=<?php echo ($page-1).@$url;?>">上一页</a>  
  216. <!--这里用分割符号分离出来添加页数--->
  217. <a href="list3.php?page=<?php echo ($page+1).@$url;?>">下一页</a>  
  218. <a href="list3.php?page=<?php echo $maxPages.@$url;?>">尾页</a>
  219.  
  220. </center>

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

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

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

  2. lucene索引并搜索mysql数据库[转]

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

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

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

  4. PHP+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,mysql,SqlServer三种数据库的分页查询的实例。

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

  9. MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法

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

随机推荐

  1. [ZOJ 1003] Crashing Balloon (dfs搜索)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3 题目大意:给你a,b两个数,问当b由约数1到100组成时,a能否由其 ...

  2. php mysql 中文乱码解决方法

    本文章向码农们介绍php mysql 中文乱码解决方法,对码农们非常实用,需要的码农可以参考一下. 从MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行 解 ...

  3. WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

    最近在试着在Windows 7上搭建Windows Phone 8的开发调试环境,使用的是VMware Workstation + Win8 Pro的虚拟环境, 在漫长的WPexpress_full下 ...

  4. visual studio R6034解决方案集 从VC6.0 或VC2003 到VC2005发现的问题

    这是我转的一篇非常全的帖子 能查到的解决方法都在里面有提及: 我是使用 stdafx.h加入这句 code #pragma comment(linker, "\"/manifest ...

  5. python基础set

    1.set set是一个无序的不重复的集合 li=[11,22,33,11] s=set(li) print(s) {11,22,33}  set提供的方法 1.add(self, *args, ** ...

  6. 也谈LBP

    LBP(local banary patter)是一种非常经典的用来描述图像局部纹理特征的算子. 1,基本LBP LBP方法自1994年提出,此后就作为一个有效的纹理特征,不断的被人使用和改进.LBP ...

  7. android + javascript 相互通信实例分析

    1.  AndroidManifest.xml中必须使用许可 "android.permission.INTERNET", 否则会出Web page not available错误 ...

  8. IBM Tivoli NetView网管软件实战

    广大网络管理者需要一款包括网络监控故障处理的一个集成网络管理平台,本文根据作者多年实践提出的基于IBM Tivoli Netview的综合网络管理平台,IBM Tivoli与Cisco一直保持着良好的 ...

  9. SOS 调试扩展 (SOS.dll) 《第五篇》

    一.SOS扩展命令 SOS包含几十个命令,要熟练使用SOS,首先要了解SOS有哪些命令.下面给出SOS命令列表. 命令 描述 BPMD [<module name> <method ...

  10. ERS-2卫星

    ERS-2卫星是欧洲空间局的第二颗资源遥感卫星,携带有雷达测高仪.综合孔径雷达等多种科学仪器,是一颗多任务.多学科的科学考察卫星.[1] ERS-1 ERS-2 欧空局分别于1991年和1995年发射 ...