借鉴了:http://blog.chinaunix.net/uid-20787846-id-3488253.html 这篇文章 ,在此基础上增加了分页功能

<?php
 /* 关键字 */
$keyword = trim($_REQUEST['title']);
if(!empty($keyword))
{
      $str = "";
      $count = '';
      /* 搜索表名称 */
      $arr = array("channel"=>'`title`,`content`',"news"=>'`news_title`,`content`',"products"=>'`p_name`,`content`');

      foreach($arr as $key=>$value){
           $row = explode(",",$value);
           $title = str_replace("`","",$row[0]);
           $content = str_replace("`","",$row[1]);
           $sql_l = "SELECT * FROM ".$key." ";

       for($i=0;$i<count($row);$i++){
            $sql_l .= ( preg_match('/WHERE/i' , $sql_l ) ? ' or ': ' WHERE ' ).$row[$i]." like '%".$keyword."%' ";
       }

       $queryu = $sql->query($sql_l)or die(mysql_error());

       while($site = $sql->assoc($queryu)){

             $title2 = str_ireplace($keyword, "<font color='red'>".$keyword."</font>",$site[$title]);
             $content2 = str_ireplace($keyword, "<font color='red'>".$keyword."</font>", cut_str(strip_tags($site[$content]),180));

        switch($key){
        case 'channel':
        $href = "GroupCEO.php?pid=3&cid=".$site['id'];
        break;
        case 'news':
        $href = "Newslist.php?pid=4&xwid=".$site['id'];
        break;
        case 'products':
        $href = "product_read.php?pid=1&fid=".$site['fid']."&id=".$site['id'];
        break;

       }
        $str .= '<p class="hei"><strong class="lan"><a href="'.$href.'">'.$title2.'</a></strong>'.$content2.'</p<div style=" border-bottom:#666 dashed 1px;height:1px;"></div>';
       $count  .= "1";

       }
      }
       //分页
        $array = explode("   ", $str);

        $page = $_REQUEST['page']?(int)$_REQUEST['page']:1;
        $totalRows = strlen($count);
        $pageSize=12;
        $totalPage=ceil($totalRows/$pageSize);
        if($page<1||$page==null||!is_numeric($page))$page=1;
        if($page>=$totalPage)$page=$totalPage;

        $start = ($page-1)*$pageSize;
        $end = $page*$pageSize;

    }

        if(empty($str))
        {
            echo "<div style='margin:20px' >对不起!您搜索的内容不存在!</div>" ;
        }
        else
        {
            for($i=$start;$i<$end;$i++)
            {
                echo $array[$i];
            }
        }

    }
    else
    {
            echo "<div style='margin:20px' >对不起!您搜索的内容不存在!</div>" ;
    }
?>

<div align="center" style="font-size:15px"><?php echo showPage($page, $totalPage,"keyword=$keyword");?></div>

  

以上内容仅提供思路 。

php 站内搜索 多表 分页的更多相关文章

  1. Lucene.net站内搜索—6、站内搜索第二版

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  2. Lucene.Net 站内搜索

    Lucene.Net 站内搜索 一  全文检索: like查询是全表扫描(为性能杀手)Lucene.Net搜索引擎,开源,而sql搜索引擎是收费的Lucene.Net只是一个全文检索开发包(只是帮我们 ...

  3. 站内搜索(ELK)之开篇

    因工作需要,近期使用ELK搭建单位内部“站内搜索”,目前已将内部OA系统20余个流程的表单.附件的数据索引到elasticsearch中,包括打印复印流程.声像采集流程.远程文件发送.规章制度.内线电 ...

  4. PHP核心编程--站内搜索

    一.         站内搜索 前台页面: 在index.php页面中添加一个表单,输入搜索框 后台页面: 将index.php另存为search.php 对于搜索的 分页关键代码: 高亮关键字 相关 ...

  5. 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内搜索)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...

  6. Lucene.net站内搜索—5、搜索引擎第一版实现

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  7. Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  8. Lucene.net站内搜索—3、最简单搜索引擎代码

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  9. Lucene.net站内搜索—1、SEO优化

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

随机推荐

  1. linux shell在while中用read从键盘输入

    系统是ubuntu 14.04 64bit,之前曾想安装Stream来玩dota2,但最终没成功.由于Stream只有32bit,安装Stream时也安装了大量32bit的库.删除Stream后,这些 ...

  2. Js获取元素样式值(getComputedStyle&currentStyle)兼容性解决方案

    因为:style(document.getElementById(id).style.XXX)只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的. 一般js获取内部样式和外部样式使用 ...

  3. [置顶] STM32移植contiki进阶之三(中):timer 中文版

    鉴于自己英语水平不高,在这里,将上一篇关于contiki 的timer的文章翻译为中文,让自己在学习的时候,更方便点.文中有许多不是很通顺的地方,将就吧. Timers Contiki系统提供了一套时 ...

  4. Oracle—RMAN备份(一)

    一.RMAN备份相关概念 1.RMAN备份中表空间不需要处于backup模式下,它备份数据文件,归档日志文件,控制文件,spfile和备份集片,但不备份联机重做日志文件,临时文件和口令文件. 2.备份 ...

  5. SDK命令行操作

    * 使用前需要先在path中添加Android SDK的环境变量,跟Java JDK的配置相同 我当前目录如下:F:\Program\Android SDK\tools:F:\Program\Andr ...

  6. POJ 1011 - Sticks DFS+剪枝

    POJ 1011 - Sticks 题意:    一把等长的木段被随机砍成 n 条小木条    已知他们各自的长度,问原来这些木段可能的最小长度是多少 分析:    1. 该长度必能被总长整除    ...

  7. Linux Shell 中的反引号,单引号,双引号

    反引号在 (`) 键盘的Tab键的上方.1键的左方.在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置.如下,shell会执行反引号中的date命 ...

  8. c++11-bind的用法

    bind函数 在c++11之前,要绑定某个函数.函数对象或者成员函数的不同参数值需要用到不同的转换器,如bind1st.bind2nd.fun_ptr.mem_fun和mem_fun_ref等.在c+ ...

  9. JDK+Eclipse+MyEclipse+tomcat的安装与配置

    以下我所使用的各软件版本为:JDK(1.6):eclipse(3.2.2):myEclipse(5.5.1GA):tomcat(5.5.12): 一.安装JDK: 下载完JDK(1.6)后双击进行安装 ...

  10. rman全库恢复到不同主机,不同实例名,不同目录下

    一.配置目标主机的ip.hostname及与源端主机的连通性 1.配置目标主机IP 使用图形界面配置IP: administration----network---修改IP(指定静态IP) deact ...