复杂检索数据并分页显示的处理方法


Posted in PHP onOctober 09, 2006

系统标题:复杂检索数据并分页显示的处理方法
系统功能:利用临时表检索数据库数据,然后分页显示的方法:
处理方法:采用临时表存放数据中间结果,根据中间结果显示数据
          数据的显示采用隔行的方式处理
处理优点:对于复杂的查询,特别是涉及到多表的数据查询,如果直接使用查询条件,系统的
          开销将很大,利用临时表把数据先保存,然后处理。这样对数据库的查询只要开销一次。
使用方法:只要把连接数据库的用户信息和数据表改变即可使用

<?
  //连接数据库
  $dbh =  mysql_connect('localhost:3306','root','');
  mysql_select_db('test');  

  //把数据检索的结果保存到临时表中
   $ls_sql  = ' create temporary table temps ';
   $ls_sql .= ' select lk_title,lk_link from  lk_t_content ';
   $ls_sql .= " where lk_title like '%".$searchcontent."%' ";
   $res = mysql_query($ls_sql, $dbh);

  //得到检索数据的总数   
   $ls_sql = 'select count(*) as rcnt_con from temps ';
   $res = mysql_query($ls_sql, $dbh);
   $rcon = $row["rcnt_con"];   

   $pages=ceil($rcon / 20); //$pages变量现在总的页数   
   if (empty($offset))  {
       $offset=1;   
       $curline = 0;
    } else
      $curline = ($offset - 1) * 20;
   //打印表头
   print '<table width="100%" border="0">';
   print '<tr class="text"> <td width="50%">  <div align="center">';
   if ($offset <> 1) { //如果偏移量是0,不显示前一页的链接   
     $newoffset=$offset - 1;   
     print "<a href='$PHP_SELF?offset=$newoffset'>前一页</a>";   
   }  else {
     print "前一页";
     print "   ";
   }
  //显示所有的页数   
  for ($i=1; $i <= $pages; $i++)  {
    $temps = "<a href='".$PHP_SELF.'?offset='.$i."'>".$i."</a>";
    print $temps;   
    print "   ";
  }   
  //检查是否是最后一页   
  if ($pages!=0 && $offset!=$pages)  {
     $newoffset=$offset+1;   
     print "<a href='$PHP_SELF?offset=$newoffset'>下一页</a>";   
  }  else print "下一页";
  print '</div> </td>';
  print '<td width="50%">  <div align="center">';
  print "当前页:".$offset." 共".$pages."页";
  print '</div> </td>';
  print "</table>";

  //显示查询信息
  print '<table width="100%" border="1">';
  print '<tr class="text"> ';
  print '<td width="100%">  <div align="center">查询结果信息</div> </td>';
  print '</tr>';

  $query = "select lk_title,lk_link from temps order by lk_title desc LIMIT ".$curline.",20";
  $res = mysql_query($query, $dbh);  

  $li_num = 0;
  while ($row = mysql_fetch_array($res)) {  
     //采用隔行显示的方法显示信息内容
     if ($li_number == 0) {
        <tr bgcolor="#dedede">
    $li_number = 1;
     } else {
        <tr bgcolor="#ededed">
    $li_number = 0;
     }
     $tempstr = "<a href='".$row[lk_link]."'>".$row['lk_title']."</a>";
     print '<td width="100%" height="15" class="text"> '.$tempstr.'</td>';
     print '</tr>';
  }
  print "</table>";
?>
----------------------------
欢迎访问:zhangcg.oso.com.cn 

PHP 相关文章推荐
PHP邮件专题
Oct 09 PHP
详解:――如何将图片储存在数据库里
Dec 05 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
Jun 25 PHP
PHP多线程类及用法实例
Dec 03 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
php三元运算符知识汇总
Jul 02 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
PHP脚本的10个技巧(5)
Oct 09 #PHP
打造计数器DIY三步曲(中)
Oct 09 #PHP
打造计数器DIY三步曲(下)
Oct 09 #PHP
打造计数器DIY三步曲(上)
Oct 09 #PHP
PHP脚本的10个技巧(4)
Oct 09 #PHP
聊天室php&amp;mysql(六)
Oct 09 #PHP
PHP脚本的10个技巧(3)
Oct 09 #PHP
You might like
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP.vs.JAVA
2016/04/29 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
js常用代码段收集
2011/10/28 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
SeaJS中use函数用法实例分析
2017/10/10 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
python实现图片处理和特征提取详解
2017/11/13 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
Python守护进程实现过程详解
2020/02/10 Python
python 命名规范知识点汇总
2020/02/14 Python
使用K.function()调试keras操作
2020/06/17 Python
Python 忽略文件名编码的方法
2020/08/01 Python
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
接口可以包含哪些成员
2012/09/30 面试题
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
校园门卫岗位职责
2013/12/09 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
给小学生的新年寄语
2014/04/04 职场文书
作息时间调整通知
2015/04/22 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
公证书
2019/04/17 职场文书
Android Rxjava3 使用场景详解
2022/04/07 Java/Android