算了.估计这次回答没分.
跟你聊聊所谓的智能搜索吧.
不用 like 实现你说的智能一些的搜索.首先你得做一套分词系统.就是把你那一句话分成若干个词.
比如"你是个非常牛逼的二傻子"这句话.你不能把"你是个"当成一个词吧. 智能一点的分词应该是把"你、非常、牛逼、傻子"分出来.
然后就开始涉及到一个权重问题了.就是 你分出来的这些词 到底你希望哪些符合条件的结果排在签名.很明显上面那句话 傻子的权重要高一些.其次是牛逼...
然后 根据权重结果匹配呈现出结果来...
基本上 搜索引擎都是这么干的. 分词---数据查询----权重排序----结果呈现....
下面是首页显示数据表package中的内容,但是有个条件,显示在首页的内容还必须是 :字段status=0,且printing=0的数据才能在首页列表中显示出来.
页面上有一个"搜索"功能,输入条件后就会根据条件来进行查询.
一般的搜索的话,只要在首页显示列表方法index()中给一个:
$map=array();//初始化查询条件
$map=$this-_search();//调用查询方法
$total = $this-Model-where ($map)-count(); //这个主要是用来计算页面显示数据条数的
if ($total == 0) {
$_list = '';
} else {
$_list = $this-Model-where ($map)-limit( $post_data ['first'] . ',' . $post_data ['rows'] )-select();
}
然后,就是写一个_search():
protected function _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
'%' . $post_data ['packageid'] . '%'
);
return $map;
最后,在设置的"搜索"菜单中,调用这个搜索方法.
但是,这个搜索的.同时,还要确保在字段status=0,且printing=0的数据中进行搜索.
这个限制条件该加在什么地方.各种尝试和查询后,才知道.限制条件直接加在SQL语句中就行了(如下红色的地方).(我自己试的时候一直在如下蓝色的地方加条件,屡试屡败!)
$map=array();
$map=$this-_search();
$total = $this-Model-where ($map)-where(array('status' =0,'print_status'=0))-count();
$_list = $this-Model-where ($map)-where(array('status' =0,'print_status'=0))-limit( $post_data ['first'] . ',' . $post_data ['rows'] )-select();
更多相关文章推荐:
通过from表单,将查询的关键词,通过 like 跟数据进行模糊查询对比\x0d\x0a从topics表中查询字段subject与传进来的参数'$_POST['topic']进行比较模糊查询\x0d\x0a设subject字段数据为:数学,英语,物理,化学,英文\x0d\x0a$subject=$_POST['topic']; \x0d\x0a$sql = "select * from topics where subject like '%" .$subject. "%'";\x0d\x0a$result = mysql_query($sql);\x0d\x0a若从表单提交的'topic'值为"学",得到的结果将是:数学,化学\x0d\x0a多个字段匹配查询:\x0d\x0a$sql = "select id,subject from topics where (id like '%" .$id. "%') or (name like '%" .$name. "%') or (subject like '%" .$subject. "%') order by id desc";\x0d\x0a结果依据字段id的顺序
以上就是土嘎嘎小编为大家整理的php实现数据库搜索功能相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!