/*多关键字查询类*/ class multikeysearch//多关键字查询类 { private $keyword;//查询关键字 private $result;//结果 function __construct($keyword,$datalist,$field)//查询关键字,数据表 { $this->keyword=$keyword; $this->datalist=$datalist; $this->field=$field;//查询的关键字段 } function dosql()//查询关键字,取得值 { $arraykeyword=preg_split('/\.|\+| |_/',$this->keyword); //分割,返回数组.+空格下划线分割。 $query=m($this->datalist);//实例化模型 $conditon=;//条件集合 $flag=1; //dump($arraykeyword); foreach($arraykeyword as $value) { //echo $value; if($flag==1) { $condition.=$this->field. like '.%.$value.%';//模糊查询 $flag=0;//首个字段不用加or } else { $condition.=' or '.$this->field. like '.%.$value.%'; } } //echo $condition;//打印sql条件语句 $this->result=$query->where($condition)->select(); foreach($this->result as &$value)//遍历数组添加引用, { foreach($arraykeyword as $keyword) { $value['profession']= str_replace($keyword,.$keyword.,$value['profession']); } } return $this->result;//返回一个高亮查询结果 } } /*多关键字查询类end*/