合并了我的数据中的搜索功能,利用Search类来实现多词搜索支持
This commit is contained in:
parent
b6b9777f91
commit
f43f91275f
|
@ -428,14 +428,21 @@ class AuthorController extends Zend_Controller_Action
|
||||||
}
|
}
|
||||||
|
|
||||||
//列表
|
//列表
|
||||||
if(empty($ac) || $ac=='list'){
|
if(empty($ac) || $ac=='list' || $ac=='search'){
|
||||||
|
|
||||||
$sql = "SELECT a.*,m.title,m.description,g.id as gid FROM normalmetadata m
|
$sql = "SELECT a.*,m.title,m.description,g.id as gid FROM normalmetadata m
|
||||||
LEFT JOIN mdauthor a ON m.uuid=a.uuid
|
LEFT JOIN mdauthor a ON m.uuid=a.uuid
|
||||||
left join geonetworkmetadata g on m.uuid=g.uuid
|
left join geonetworkmetadata g on m.uuid=g.uuid
|
||||||
WHERE a.userid=? AND status>=0
|
WHERE a.userid=? AND status>=0";
|
||||||
ORDER BY status DESC,a.id DESC
|
if ($ac=='search')
|
||||||
";
|
{
|
||||||
|
$key = trim($this->_request->getParam('q'));
|
||||||
|
$this->view->q = $key;
|
||||||
|
$search=new Search($key);
|
||||||
|
$where=$search->sql_expr(array("m.title","m.description"));
|
||||||
|
$sql.=' and '.$where;
|
||||||
|
}
|
||||||
|
$sql.="ORDER BY status DESC,a.id DESC";
|
||||||
|
|
||||||
$sth = $this->db->prepare($sql);
|
$sth = $this->db->prepare($sql);
|
||||||
$sth->execute(array($u_id));
|
$sth->execute(array($u_id));
|
||||||
|
@ -449,37 +456,7 @@ class AuthorController extends Zend_Controller_Action
|
||||||
$this->view->paginator=$paginator;
|
$this->view->paginator=$paginator;
|
||||||
|
|
||||||
}//list
|
}//list
|
||||||
|
|
||||||
//搜索
|
|
||||||
if($ac == "search")
|
|
||||||
{
|
|
||||||
$keyword = trim($this->_request->getParam('q'));
|
|
||||||
$this->view->q = $keyword;
|
|
||||||
if (!preg_match_all("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$keyword,$matchs))
|
|
||||||
{
|
|
||||||
$data = array('error'=>'搜索关键字中只能包含汉字、英文、数字');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//搜索标题和描述两个字段
|
|
||||||
$sql = "SELECT a.*,m.title,m.description FROM normalmetadata m
|
|
||||||
LEFT JOIN mdauthor a ON m.uuid=a.uuid
|
|
||||||
WHERE (m.title like ? OR m.description like ?) AND a.userid=? AND status>=0
|
|
||||||
ORDER BY status DESC,a.id DESC
|
|
||||||
";
|
|
||||||
$sth = $this->db->prepare($sql);
|
|
||||||
$sth->execute(array("%$keyword%","%$keyword%",$u_id));
|
|
||||||
$rows = $sth->fetchAll();
|
|
||||||
|
|
||||||
$paginator = Zend_Paginator::factory($rows);
|
|
||||||
$paginator->setCurrentPageNumber($this->_getParam('page'));
|
|
||||||
$paginator->setItemCountPerPage(5);
|
|
||||||
$paginator->setView($this->view);
|
|
||||||
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
|
|
||||||
$this->view->paginator=$paginator;
|
|
||||||
}
|
|
||||||
}// search
|
|
||||||
|
|
||||||
//激活数据作者
|
//激活数据作者
|
||||||
if($ac == "active")
|
if($ac == "active")
|
||||||
{
|
{
|
||||||
|
@ -561,7 +538,7 @@ class AuthorController extends Zend_Controller_Action
|
||||||
|
|
||||||
}//激活数据作者
|
}//激活数据作者
|
||||||
|
|
||||||
//否认激活
|
//拒绝激活
|
||||||
if($ac == "lock")
|
if($ac == "lock")
|
||||||
{
|
{
|
||||||
$this->_helper->viewRenderer('accept-active');
|
$this->_helper->viewRenderer('accept-active');
|
||||||
|
|
Loading…
Reference in New Issue