首頁  >  文章  >  php教程  >  帝国CMS的搜索表单语法规则

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

WBOY
WBOY原創
2016-06-21 08:50:201481瀏覽

帝国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;
}



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn