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


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 相关文章推荐
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
基于php-fpm的配置详解
Jun 03 PHP
深入PHP magic quotes的详解
Jun 17 PHP
使用PHP编写的SVN类
Jul 18 PHP
php中字符集转换iconv函数使用总结
Oct 11 PHP
php中memcache 基本操作实例
May 17 PHP
Symfony2框架创建项目与模板设置实例详解
Mar 17 PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 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
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
python模拟鼠标拖动操作的方法
2015/03/11 Python
python输出指定月份日历的方法
2015/04/23 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
python中str内置函数用法总结
2020/12/27 Python
C语言中break与continue的区别
2012/07/12 面试题
.net面试题
2016/09/17 面试题
社区工作者先进事迹
2014/01/18 职场文书
女子职高个人自荐书
2014/02/01 职场文书
《争吵》教学反思
2014/02/15 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
意向书范文
2014/03/31 职场文书
保护动物倡议书
2014/04/15 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书