php 站内搜索 多表 分页

借鉴了: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>

  

以上内容仅提供思路 。

时间: 2024-08-19 08:57:32

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

PHP核心编程--站内搜索

一.         站内搜索 前台页面: 在index.php页面中添加一个表单,输入搜索框 后台页面: 将index.php另存为search.php 对于搜索的 分页关键代码: 高亮关键字 相关函数: 1)        Mysql_fetch_assoc, 2)        mysql_fetch_row 3)        mysql_fetch_array 4)        mysql_fetch_object(); 5)        mysql_num_rows($resul

Lucene.Net 站内搜索

Lucene.Net 站内搜索 一  全文检索: like查询是全表扫描(为性能杀手)Lucene.Net搜索引擎,开源,而sql搜索引擎是收费的Lucene.Net只是一个全文检索开发包(只是帮我们存数据取数据,并没有界面,可以看作一个数据库,只能对文本信息进行检索)Lucene.Net原理:把文本切词保存,然后根据词汇表的页来找到文章 二  分词算法: //一元分词算法(引用Lucene.Net.dll)  一元分词算法 //二元分词算法(CJK:China Japan Korean 需要再

Lucene.net站内搜索1——SEO优化简介

声明:在这里,所谈的一切关于SEO的技术主要针对于我们开发人员. SEO (搜索引擎优化) SEO(搜索引擎优化)的目的(很多人都是通过搜索引擎找到我们的网站)是让搜索引擎更多的收录网站的页面,让被收录页面的权重更靠前,让更多的人能够通过搜索引擎进入这个网站 原理:蜘蛛会定时抓取网站的内容,发现网站内容变化.发现新增内容就反映到搜索引擎中 蜘蛛(spider) 爬网站:就是向网站发http get请求的客户端. SEO(搜索引擎优化*):让网站排名靠前,让网站更多的页面被搜索引擎收录.链接(外链

基于lucene.net 和ICTCLAS2014的站内搜索的实现2

分词系统建立完毕,这是基础也是核心,后面我们建立索引要用到分词系统. 下面依次讲解索引的建立,索引的查找. 分词系统建立完毕,这是基础也是核心,后面我们建立索引要用到分词系统.下面依次讲解索引的建立,索引的查找. 索引的建立采用的是倒排序,原理就是遍历所有的文本,对其进行分词,然后把分的词汇建立索引表.形式类似如下: 词汇          出现词汇的篇章1,篇章2,篇章3-- 建立索引的时候要注意这样的Document,Field这俩术语.Document代表的是一个文档,它里面包含一个或者多

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

前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做个插件,任何网站上的技术文章都可以转发收藏 到本博客. 所以打算写个系类:<一步步搭建自己的博客> 一步步开发自己的博客  .NET版(1.页面布局.blog迁移.数据加载) 一步步开发自己的博客  .NET版(2.评论功能) 一步步开发自己的博客  .NET版(3.注册登录功能) 一步步开发自己

基于lucene.net 和ICTCLAS2014的站内搜索的实现1

Lucene.net是一个搜索引擎的框架,它自身并不能实现搜索,需要我们自己在其中实现索引的建立,索引的查找.所有这些都是根据它自身提供的API来实现.Lucene.net本身是基于java的,但是经过翻译成.ne版本的,可以在ASP.net中使用这个来实现站内搜索. 要实现基于汉语的搜索引擎,首先的要实现汉语的分词.目前网上大部分都是利用已经有的盘古分词来实现的分词系统,但是盘古分词效果不太好.在这里我把最新的ICTCLAS2014嵌入到Lucene.net中.Lucene.net中所有的分词

利用Solr服务建立的站内搜索雏形

最近看完nutch后总感觉像好好捯饬下solr,上次看到老大给我展现了下站内搜索我便久久不能忘怀.总觉着之前搭建的nutch配上solr还是有点呆板,在nutch爬取的时候就建立索引到solr服务下,然后在solr的管理界面中选择query,比如在q选项框中将"*:*"改写为"title:安徽",则在管理界面中就能看到搜索结果,可是这个与搜索引擎的感觉差远了,总感觉这些结果是被solr给套在他的管理界面中了,于是自己在网上搜索,也想整个站内搜索一样的东西,就算整不到

1.PHP站内搜索

PHP站内搜索:多关键字.加亮显示 1.SQL语句中的模糊查找 $sql = "SELECT * FROM `message` WHERE `content`like '%$k[0]%' and `content`like '%$k[0]%'"; 2.多个关键字搜索的原理和技巧 3.替换关键字高亮显示 $r[content] = preg_replace("/($_GET[key])/i", "<font color = red><b&g

利用Solr服务建立的站内搜索雏形---solr1

最近看完nutch后总感觉像好好捯饬下solr,上次看到老大给我展现了下站内搜索我便久久不能忘怀.总觉着之前搭建的nutch配上solr还是有点呆板,在nutch爬取的时候就建立索引到solr服务下,然后在solr的管理界面中选择query,比如在q选项框中将“*:*”改写为“title:安徽”,则在管理界面中就能看到搜索结果,可是这个与搜索引擎的感觉差远了,总感觉这些结果是被solr给套在他的管理界面中了,于是自己在网上搜索,也想整个站内搜索一样的东西,就算整不到那么炫,只要整到在solr的管