我只想创建一个排序查询。当我把where
条款没有发生时。
当$search_param['type']
具有值时,它应该只输出sp_archive.SP_Type中具有$search_param['type']
的那个
以下是查询:
function search_data($search_param){
if(empty($search_param)){
return array();
}else{
$this->db->select("sp_archive.SP_ID, SP_TITLE, SP_RATIONALE, SP_File, GROUP_CONCAT(Tag.Tag_Name) As Tag");
$this->db->select("ad.Account_LastName AS ADLastName");
$this->db->select("ad.Account_FirstName AS ADFirstName");
$this->db->select("ad.Account_MiddleInitial AS ADMiddleInitial");
$this->db->select("a.Account_FirstName AS AFirstName");
$this->db->select("a.Account_MiddleInitial AS AMiddleInitial");
$this->db->select("a.Account_LastName AS ALastName");
$this->db->select("b.Account_FirstName AS BFirstName");
$this->db->select("b.Account_MiddleInitial AS BMiddleInitial");
$this->db->select("b.Account_LastName AS BLastName");
$this->db->select("c.Account_FirstName AS CFirstName");
$this->db->select("c.Account_MiddleInitial AS CMiddleInitial");
$this->db->select("c.Account_LastName AS CLastName");
$this->db->from("sp_archive");
$this->db->join('account ad', 'sp_archive.Adviser = ad.Account_ID','left');
$this->db->join('account a', 'sp_archive.Proponent_A = a.Account_ID','left');
$this->db->join('account b', 'sp_archive.Proponent_B = b.Account_ID','left');
$this->db->join('account c', 'sp_archive.Proponent_C = c.Account_ID','left');
$this->db->join('tag', 'sp_archive.SP_ID = tag.SP_ID', 'inner');
$this->db->where('sp_archive.SP_Type', array($search_param['type1'], $search_param['type2'],$search_param['type3'],$search_param['type4']));
$this->db->like("SP_TITLE", $search_param['search']);
$this->db->or_like("ad.Account_LastName", $search_param['search']);
$this->db->or_like("ad.Account_FirstName", $search_param['search']);
$this->db->or_like("a.Account_LastName", $search_param['search']);
$this->db->or_like("a.Account_FirstName", $search_param['search']);
$this->db->or_like("c.Account_LastName", $search_param['search']);
$this->db->or_like("c.Account_FirstName", $search_param['search']);
$this->db->or_like("c.Account_LastName", $search_param['search']);
$this->db->or_like("c.Account_FirstName", $search_param['search']);
$this->db->group_by("sp_archive.SP_ID");
$query = $this->db->get();
return $query;
}
答案 0 :(得分:0)
根据我的评论您的代码应该像
$this->db->where('sp_archive.SP_Type', array($search_param['type1'], $search_param['type2'],$search_param['type3'],$search_param['type4']));
$this->db->group_start();
$this->db->like("SP_TITLE", $search_param['search']);
$this->db->or_like("ad.Account_LastName", $search_param['search']);
$this->db->or_like("ad.Account_FirstName", $search_param['search']);
$this->db->or_like("a.Account_LastName", $search_param['search']);
$this->db->or_like("a.Account_FirstName", $search_param['search']);
$this->db->or_like("c.Account_LastName", $search_param['search']);
$this->db->or_like("c.Account_FirstName", $search_param['search']);
$this->db->or_like("c.Account_LastName", $search_param['search']);
$this->db->or_like("c.Account_FirstName", $search_param['search']);
$this->db->group_end();
答案 1 :(得分:0)
public function select_where($table,$where)
{
$r = $this->db->get_where($table,$where);
// $sql = $this->db->last_query();
//echo $sql;
$res = $r->result();
//print_r($res);
//die;
return $res;
}