Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在codeigniter模型中,我应该在哪里添加Where子句?_Mysql_Codeigniter_Codeigniter 3 - Fatal编程技术网

Mysql 在codeigniter模型中,我应该在哪里添加Where子句?

Mysql 在codeigniter模型中,我应该在哪里添加Where子句?,mysql,codeigniter,codeigniter-3,Mysql,Codeigniter,Codeigniter 3,我只想创建一个排序查询。当我把放在where子句中时,什么也没发生 当$search\u param['type']具有值时,应该只输出在sp_archive.sp\u type中具有$search\u param['type']的人 以下是查询: function search_data($search_param){ if(empty($search_param)){ return array(); }else{ $this->db->se

我只想创建一个排序查询。当我把
放在where
子句中时,什么也没发生

$search\u param['type']
具有值时,应该只输出在sp_archive.sp\u type中具有
$search\u 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;
    }

根据我的评论,你的代码应该是

 $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();
公共功能选择_where($table,$where)
{
$r=$this->db->get_where($table,$where);
//$sql=$this->db->last_query();
//echo$sql;
$res=$r->result();
//印刷品(港币);;
//死亡;
返回$res;

}
您应该在问题中直接包含您的PHP代码,但我的第一个问题可能是您确定这个
WHERE
子句对查询有任何影响吗?可能它只是没有影响任何记录,或者可能您没有正确编码。我认为在选择之后。因为Where子句将根据您的条件筛选数据,然后针对类似结果的查询覆盖您的Where行为筛选所需的行数将减少,所以添加
$this->db->group_start()在开始like查询之前,在末尾添加`$this->db->group_end()`我想您正在寻找允许多个查询的
where_in
函数?而不是
where
Ohh!,我只是在代码中发现了错误。我没有像
search_param['type1']
那样传递查询所需的变量,我应该使用
where_in()
来表示where子句代码片段不用于格式化代码!代码片段是可运行的JavaScript、CSS和HTML代码块,有助于创建一个最小、完整且可验证的示例!和