class search extends SCURD{
/*构造函数,初始化连接,与父类使用方法相同*/
function __construct($HOST,$DB_USER,$PASSWD,$DB){
parent::__construct($HOST,$DB_USER,$PASSWD,$DB);
}
/*析构函数,关闭连接*/
function __destruct(){
parent::__destruct();
}
/**
* 公有方法,搜索字符串并高亮文字,返回一个二维数组结果集
* @parameter $table(字符串类型,必填),填写所需查询的表
* @parameter $fieldName(字符串类型,必填),填写所需搜索的字段名
* @parameter $strSearch(字符串类型,必填),填写所需搜索的字符串
* @parameter $hlColor(字符串类型,可选),填写高亮文字的颜色,默认为红色
**/
function iSearch($table,$fieldName,$strSearch,$hlColor = 'red'){
$arrSearch = explode(' ',$strSearch);
foreach($arrSearch as $value){
$conditions[] = "$fieldName LIKE '%$value%'";
}
$condition = is_array($conditions) ? implode(' OR ',$conditions) : $conditons[0];
$arrStr = parent::r($table,array('*'),$condition);
if($arrStr){
for($i = 0; $i < count($arrStr); $i++){
foreach($arrSearch as $key => $sValue){
$arrStr[$i][$fieldName] = $this->hlStr($arrSearch[$key],$arrStr[$i][$fieldName],$hlColor);
}
}
}
return $arrStr;
}
/**
* 私有方法,高亮文字,返回高亮后的字符串
* @parameter $needle(字符串类型,必填),填写所需查找的字符串
* @parameter $haystack(字符串类型,必填),填写被查找的字符串
* @parameter $color(字符串类型,必填),填写高亮文字的颜色
**/
private function hlStr($needle,$haystack,$color){
$str = str_ireplace("$needle","$needle",$haystack);
return $str;
}
}
//使用示例
if(isset($_GET['txtSearch'])){ //判断是否提交了表单
$str = $_GET['txtSearch']; //搜索的字符串赋值给$str
$s = new search('localhost','root','','test'); //实例化一个search类
$results = $s->iSearch('test','message',$str); //把结果集赋值给$results
if($results){ //判断结果集是否为空
foreach($results as $key => $value){ //遍历结果集
echo '第' . ($key+1) . '条记录: ';
echo 'ID:' . $value['id'] . ' ' . '姓名:' . $value['name'];
echo ' 留言: ' . $value['message'] . ' ';
}
}
else{
echo '无记录';
}
}
?>
对于动态页
|