• 技术文章 >后端开发 >php教程

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

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

    变量名 说明 例子
    搜索表单提交地址 POST方式:/e/search/index.php
    GET方式:/e/search/?searchget=1 /e/search/?searchget=1&keyboard=帝国&show=title
    keyboard 搜索关键字变量
    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[min_keyboard]||$len>$public_r[max_keyboard])
    	{
    		printerror("MinKeyboard",$getfrom,1);
    	}
    	$keyboardone=1;
    }
    

    OK,完成。

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752538.htmlTechArticle帝国CMS提供了比较强大的搜索结果调用,你可以按照帝国cms搜索表单制作语法,制作出满足你需求的大部分搜索功能。如果你在你的数据库...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:帝国CMS 搜索表单
    上一篇:如何解决MySQL超过最大连接数问题_PHP教程 下一篇:PHP给文章点击统计加个缓存_PHP教程
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 基于PHP编程注意事项的小结_PHP教程• PHP5中Cookie与 Session使用详解_PHP教程• PHP重定向的3种方式_PHP教程• PHP中图片等比缩放的实例_PHP教程• 那些年一起学习的PHP(一)_PHP教程
    1/1

    PHP中文网