一、SQL语句中的模糊查找
       主要通过LIKE(不区分大小写)关键字实现模糊查找。LIKE条件一般用在指定搜索某字段的时候, 通过"%"或者" _" 通配符的作用实现模糊查找功能,通配符可以在字段前面也可以在后面或前后都有。只通过LIKE是无法实现模糊查找的,因此通配符的作用不可忽略。 下面是三个实例:
搜索以PHP开头:
SELECT * FROM table WHERE title  LIKE  'PHP%'  搜索以PHP结束:
SELECT * FROM table WHERE title  LIKE  '%PHP' 搜索包含PHP100:
SELECT * FROM table WHERE title  LIKE  '%PHP%'  注:%表示0个或多个字符构成的字符串,_表示单个字符,类似于正则表达式中元字符的作用
在LIKE后面可以增加其他条件,类似于if语句
例子的数据库中的内容 <?php  
    $conn = @mysql_connect("localhost", "root", "") or die("数据库链接错误");  
    mysql_select_db("bbs", $conn);  
    mysql_query("set names 'utf-8'"); //使用utf8中文编码;  
      
    if($_GET['key']) {  
          
        $sql = "SELECT * FROM `text` WHERE content LIKE '%$_GET[key]%'";  
        $query = mysql_query($sql);  
          
        while($r=mysql_fetch_array($query)) {  
            echo "$r[content]"."<br>";  
        }  
    }  
      
?>  
  
<html>  
    <body>  
    <form action="" method="get">  
    关键字:  
    <input type="text" name="key" />  
    <input type="submit" name="sub" value="搜索" />  
    </form>  
    </body>  
</html>   二、多个关键字搜索的原理和技巧
单个关键字搜索的步骤:提交表单->PHP文件接收关键字->执行SQL->输出结果
如果是多关键字的时候:在提交表单的时候将多个关键字用空格或+号分隔开,然后PHP文件接收到所提交的字符串后,通过一些函数如:explore函数将字符串拆分成多个关键字存放在数组中;然后就可以在数据库中通过多个LIKE模糊查找得到所要查找的内容。 三、替换关键字高亮显示
通过模糊查找得到所要的内容后,使用正则表达式替换所要查找的内容,可以通过改变颜色,加粗等改变显示的效果。 <?php  
    $conn = @mysql_connect("localhost", "root", "") or die("数据库链接错误");  
    mysql_select_db("bbs", $conn);  
    mysql_query("set names 'utf-8'"); //使用utf8中文编码;  
      
    if($_GET['key']) {  
        $k = explode(" ", $_GET[key]);  
          
        $sql = "SELECT * FROM `text` WHERE content LIKE '%$k[0]%' or content LIKE '%$k[1]%'";  
        $query = mysql_query($sql);  
          
        while($r=mysql_fetch_array($query)) {  
            $r[content] = preg_replace("/($k[0])/i", "<font color=red><b>\\1</b></font>", $r[content]);  
            $r[content] = preg_replace("/($k[1])/i", "<font color=red><b>\\1</b></font>", $r[content]);  
            echo "$r[content]"."<br>";  
        }  
    }  
      
?>  
  
<html>  
    <body>  
    <form action="" method="get">  
    关键字:  
    <input type="text" name="key" />  
    <input type="submit" name="sub" value="搜索" />  
    </form>  
    </body>  
</html>  

PHP站内搜索:多关键字、加亮显示的更多相关文章

  1. 1.PHP站内搜索 分类: PHP开发实例 2015-07-31 22:48 4人阅读 评论(0) 收藏

    PHP站内搜索:多关键字.加亮显示 1.SQL语句中的模糊查找 $sql = "SELECT * FROM `message` WHERE `content`like '%$k[0]%' a ...

  2. PHP实例开发(1)PHP站内搜索

    PHP站内搜索:多关键字.加亮显示 1.SQL语句中的模糊查找 $sql = "SELECT * FROM `message` WHERE `content`like '%$k[0]%' a ...

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

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

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

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

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

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

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

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

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

    最近看完nutch后总感觉像好好捯饬下solr,上次看到老大给我展现了下站内搜索我便久久不能忘怀.总觉着之前搭建的nutch配上solr还是有点呆板,在nutch爬取的时候就建立索引到solr服务下, ...

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

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

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

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

  10. 站内搜索——Lucene +盘古分词

    为了方便的学习站内搜索,下面我来演示一个MVC项目. 1.首先在项目中[添加引入]三个程序集和[Dict]文件夹,并新建一个[分词内容存放目录] Lucene.Net.dll.PanGu.dll.Pa ...

随机推荐

  1. JAVA命令大全

    1.java.exe:======================运行java程序,这个相信每一位用Java的人知道了. 2.javac.exe:======================编译的Ja ...

  2. Socket网络编程(2)--服务端实现

    中秋了,首先祝大家中秋快乐,闲着无事在家整一个socket的聊天程序,有点仿QQ界面,就是瞎折腾,不知道最后是不是能将所有功能实现. 如果你对socket不了解,请看这篇文章:http://www.c ...

  3. gdb 多线程调试

    gdb 多线程调试 http://hi.baidu.com/hcq11/blog/item/9f5bfc6e696209d680cb4a25.html  http://hi.baidu.com/lit ...

  4. Windows下文件的所有和权限

    跟linux不同, 在linux下 ,文件的所有者,就拥有对文件的所有读写执行的权限, 而windows, 文件的所有者不一定对文件拥有所有的权限, 场景: 要对系统文件(windows\system ...

  5. DEDECMS 后台登录空白怎么办 后台无法登陆

    刚安装完dedecms,兴致冲冲的准备进后台,输入完用户名和密码后,页面 中显示一片空白. 立马到网上搜搜,发现大家各抒己见,但是都没有解决问题. 不过,下面的这个方法是可以的.马上记录下来,以备其他 ...

  6. 支付宝也要上"服务号"?斗战微信继续升级

    微信着实火了一阵,特别是微信服务号,在商户和消费者之间形成闭环,O2O领先了一步,作为曾经的电商支付老大支付宝来说是一种心头之痛,迫于压力,支付宝将于5月在支付宝钱包中上线服务窗功能,同时支付宝钱包将 ...

  7. 完善dedecms站内搜索代码,为搜索结果添加第*页

    自那些平凡而伟大的程序猿开发了内容管理系统(cms),为了让看客们更快地找到自己感兴趣的内容,他们不断完善站内搜索代码,形成了一个小型的站内搜索引擎.可能有些网站模板设计师没考虑到seo的问题,很多站 ...

  8. 第15章 使用Postfix与Dovecot收发电子邮件

    章节概述: 本章节从电子邮局系统的组成角色开始讲起,了解MUA.MTA与MDA的作用,熟悉熟悉SMTP.POP3与IMAP4邮局协议. 学习postfix与dovecot服务程序的使用方法并逐条讲解配 ...

  9. Linux查看和结束进程命令详解

    在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill .killall.pkill.xkill 等进行. ----------------------------------- ...

  10. 响应式Web设计(Responsive Web design)

    中文名 响应式Web设计 提出时间 2010年5月 英    文 Responsive Web design 解    释 一个网站能够兼容多个终端 目    的 解决移动互联网的浏览 优    点 ...