Heim  >  Artikel  >  php教程  >  帝国CMS的搜索表单语法规则

帝国CMS的搜索表单语法规则

WBOY
WBOYOriginal
2016-06-21 08:50:201481Durchsuche

帝国CMS提供了比较强大的搜索结果调用,你可以按照帝国cms搜索表单制作语法,制作出满足你需求的大部分搜索功能。如果你在你的数据库中有自定义字段,那么可能需要改一下e/search/index.php对form表单提交的数据处理,可以参考文章最后提供的例子。先来看看搜索表单变量说明:
变量名说明例子搜索表单提交地址POST方式:/e/search/index.php

GET方式:/e/search/?searchget=1/e/search/?searchget=1&keyboard=帝国&show=titlekeyboard搜索关键字变量show搜索字段变量(多个字段用","格开。搜索字段必须是后台模型开启搜索的字段)classid搜索栏目ID(不设置为不限,多个栏目可用","格开,设置父栏目会搜索所有子栏目)ztid搜索专题ID(不设置为不限,多个专题可用","格开)tbname按数据表搜索(需与搜索模板ID结合)tempid所用搜索模板ID(一般跟按表搜索结合使用)starttime与endtime分别为搜索发布起始时间与结束时间的信息(不填为不限.格式:2008-02-27)
startprice与endprice分别为商品价格的起始价格与结束价格(不填为不限)
搜索特殊字段id : 按信息ID搜索
keyboard : 按关键字搜索(可实现按tags列出信息)
userid : 按发布者用户ID搜索
username : 按发布者用户名搜索member值为0则不限制
值为1则为只搜索会员投稿的信息
值为2则为只搜索管理员增加的信息orderby排序字段:
0:按发布日期(默认)
1:按ID
2:按评论数
3:按浏览人气
4:按下载数myorder排序方式:
0:倒序排列(默认)
1:顺序排列andor设置多条件查询之间关联关系,有两种:
or : 或者的关系(默认)
and : 并且的关系hh逻辑运算联结符变量:
LT : 小于
GT : 大于
EQ : 等于
LE : 小于等于
GE : 大于等于
NE : 不等于
IN : 包含(搜索关键字用空格隔开每个值)
BT : 范围,两个值之间(搜索关键字用空格隔开两个值)
LK : 模糊查询(默认)
下面是一个例子:





   关键字:
  范围:
      
      标题
      简介
      内容
      作者
      搜索全部
      



   栏 目:
      
      搜索全部
      新闻中心
      技术文档
      下载中心
      

  







搜索表单多条件并列搜索语法说明

1. 多字段并列搜索:有"字符串"与"数组"两种传递方式
字符串传递为例子:







说明:上面为模糊查询title字段包含"标题"字符或者writer字段包含"作者"的信息
数组传递为例子:









上面为模糊查询title字段包含"标题"字符或者writer字段包含"作者"的信息
2. 多逻辑运算联结符并列搜索
字符串传递为例子:







说明:上面为模糊查询title字段包含"标题"字符或者writer字段等于"作者"的信息
字符串传递为例子:










说明:上面为模糊查询title字段包含"标题"字符或者writer字段等于"作者"的信息。


一个实际例子

表单设计如下:




    全部




    
        
            地区:
        
            不限
            香洲
            吉大
            拱北
            新香洲
            前山
            南屏
            金湾
            斗门
        
          房型:
        
            不限
            一房
            二房
            三房以上
            公寓
            写字楼
            商铺
            厂房
        
            
            
        
        
            时间范围: (不选则不限时段)
          
      
      
              
            
        
    





为了可以加入对自定义字段myarea与mycategory的搜索,我们需要对e/search/index.php进行适当改写:


$keyboard=$_POST['keyboard'].','.$_POST['area'].','.$_POST['category'];
// 这是原来的:$keyboard=$_POST['keyboard'];
$keyboardone=0;
if(is_array($keyboard))
{}
elseif(strstr($keyboard,','))
{
    $keyboard=explode(',',$keyboard);
}
else
{
    $keyboard=trim($keyboard);
    $len=strlen($keyboard);
    if($len$public_r[max_keyboard])
   {
       printerror("MinKeyboard",$getfrom,1);
   }
    $keyboardone=1;
}



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn