【问题标题】:why is this happening in codeigniter?为什么在codeigniter中会发生这种情况?
【发布时间】:2018-12-19 01:01:20
【问题描述】:
$query1 = $this->db
    ->select('skill_description.description, count(staff_info.staffId) as experienced')
    ->from('skill_rating')
    ->join('staff_info','staff_info.staffId = skill_rating.staffId')
    ->join('skill_description','skill_rating.descriptionId = skill_description.descriptionId')
    ->where ('skill_rating.rating','2')
    ->group_by("skill_description.description")                       
    ->order_by("skill_description.description asc")
    ->get();

当我使用它时,我会得到想要的结果.. 但只要我添加

->where_in ('skill_description.description',$array)

它会产生一个不应该的空数组。它应该返回我认为的相同结果。如果我对同一个查询使用纯 sql 样式,它就可以工作。 $array 包含所有描述。 我该怎么办?

【问题讨论】:

  • 确保$array是一个数组数据
  • @pradeep Array ([0] => Ab Initio [1] => Ajax [2] => Android [3] => ANT [4] => Appworx - UC4 [5] => C++ [6] => Coreldraw [7] => Crystal Reports [8] => CSS ) 这是 $array
  • 最好使用description id 而不是description name
  • 编辑你的问题并在那里添加你的纯 sql 查询
  • 如果描述字段有文本值那么你应该使用 ->like() 而不是 where_in()

标签: php mysql sql codeigniter


【解决方案1】:

如果描述具有字符串或文本数据类型,那么您应该使用 LIKE。

 $q = $this->db->select('*')
    ->from('table')
    ->where("(col LIKE '%".$search_string1."%' OR col LIKE '%".$search_string2."%' OR col LIKE '%".$search_string3."%' OR col LIKE '%".$search_string4."%')", NULL, FALSE)
    ->get()->results;

【讨论】:

    猜你喜欢
    • 2013-08-02
    • 2021-01-24
    • 1970-01-01
    • 2013-06-09
    • 2021-04-30
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多