一、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. javascript中parentNode,childNodes,children的应用详解

    本篇文章是对javascript中parentNode,childNodes,children的应用进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助   "parentNode&qu ...

  2. jQuery1.11源码分析(7)-----jQuery一些基本的API

    这篇文章比较繁杂,主要就是把jQuery源码从上到下列出来,看我的注释就好了. jQuery源码对各种加载器做了处理. //阅读这个源码是请先了解一下概念,即时函数,工厂模式 (function( g ...

  3. C#常用函数--通用篇

    C#常用函数→通用篇转载地址→http://www.cnblogs.com/superfang/archive/2008/07/02/1233706.html以前我都是"原文地址" ...

  4. 微信5.4你所不知道的事 X5浏览引擎提速50%-80%

    微信5.4新增包括搜索公众号.识别图中二维码.面对面收钱等功能,但是你可知道新版微信X5浏览引擎提速了,提升50%-80%的网络传输速度及相同比例流量节省? 从X5浏览引擎开发人员得知,X5浏览技术基 ...

  5. Bootstrap速学教程之简要介绍

    Bootstrap是Twitter推出的一个用于前端开发的开源工具包,由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架,不用请UI设计师也能 ...

  6. java笔记--超级类Object多线程的应用+哲学家进餐算法内部类与多线程结合

    关于Object类中的线程方法: Object类是所有Java类的 父类,在该类中定义了三个与线程操作有关的方法,使得所有的Java类在创建之后就支持多线程 这三个方法是:notify(),notif ...

  7. Eclipse设置:背景与字体大小和xml文件中字体大小调整

    Eclipse中代码编辑背景颜色修改:代码编辑界面默认颜色为白色.对于长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以改变workspace的背景色,可以使眼睛舒服一些.设置方法如下:1.打开wi ...

  8. NGUI 学习笔记实战——制作商城UI界面

    http://www.cnblogs.com/chongxin/p/3876575.html Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我 ...

  9. ref游标(动态游标)

    参照变量--用于存放数值指针的变量    游标变量(ref cursor)   使用游标时,当定义游标时不需要指定相应的select语句,但是当使用    游标时(open时)需要指定select语句 ...

  10. 对target="framename"的理解(实现分页的demo)

    先上图,说明一下我主要想实现什么功能. 一.演示图 演示首页: 演示内容页(包括按钮切换页+模板内容页): 演示首页到演示内容页的一个演变过程: