PHP多字段搜索

/**
* 功能:高级搜索代码
* 变量: $keyword 关键字
* $con 关系,and或or
* $method 模糊或精确
* $field 字段数组
* 返回值:$tmp sql主体
*/
function super_search($keyword,$con,$method,$field)
{
global $tmp;
$keyword = split("[ \t\r\,]+",$keyword);
$num_word = count($keyword);//统计关键字个数
$num = count($field);
if($con=="")
{
$con = "OR";
}
if($method=="like")//模糊查找
{
for($i=0; $i<$num; $i++)
{
$i<$num-1?$condition = $con:$condition=NULL;
$tmp.= " {$field[$i]} $method '%".join("%' $con {$field[$i]} $method '%",$keyword)."%' $condition";
}
}
elseif($method=="exact")//精确查找
{
for($i=0; $i<$num; $i++)
{
$i<$num-1?$condition = $con:$condition=NULL;
$tmp.= " instr({$field[$i]},'".join("')!=0 $con instr({$field[$i]},'",$keyword)."')!=0 $condition";
}
}
return $tmp;
}
example:
$fields = array("title","content","intro");
echo super_search("a b c d","AND","exact",$fields);
echo super_search("a b c d","OR","like",$fields);

相关日志

标签Tags:, , ,
Leave a comment

2 Comments.

  1. 多谢啦!斑竹辛苦了!
    如果可以的话,写得象那段ASP查询一样详细好吗?我正在学习中,根据斑竹的ASP多字段查询我可以轻易显示出结果,但是就这段php程序,我的水平不足以补充完整,看不出效果啊…

    [回复]

  2. 高手,真是高手!
    多谢江老大的无偿奉献!多谢江老大对我等新手的指导!终于可以用到该字段的搜索啦!

    [回复]

Leave a Reply


[ Ctrl + Enter ]