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