Php 将数组传递给模型函数查询codeigniter

Php 将数组传递给模型函数查询codeigniter,php,mysql,codeigniter,Php,Mysql,Codeigniter,这是我的函数,我想在in()子句中放入数组值,但它不起作用 这里$ids是传递给它的数组 function get_school_students_data($ids){ $query=$this->db->query("SELECT * FROM screening_answers where uid IN(".implode(',',$ids).")"); $result=$query->result_array(); retur

这是我的函数,我想在in()子句中放入数组值,但它不起作用
这里
$ids
是传递给它的数组

    function get_school_students_data($ids){
    $query=$this->db->query("SELECT * FROM screening_answers where uid 
    IN(".implode(',',$ids).")");
    $result=$query->result_array();
     return $query->num_rows();
    }
试试这个

$this->db->where_in('uid',$ids);
所以在模型中

function get_school_students_data($ids){
    $this->db->where_in('uid',$ids);//$ids should be an array like array('20','15','22','42','86')
    $query = $this->db->get("screening_answers");
    $result=$this->db->result_array();// no need of this in your scenario
    return $this->db->num_rows();
 }

最好使用codeigniter的活动记录

$this->db->query("SELECT * FROM screening_answers where uid 
IN(".implode(',',$ids).")");
变成

$this->db->select();
$this->db->from('screening_answer');
$this->db->where_in('uid',$ids);

试试这个,这对我很管用 //用于简单/随机搜索

 function search($designation){
        $this->db->select("*");
        foreach($designation as $single_data) $this->db->or_like("designation",$single_data);
        $this->db->order_by('rand()');
        $this->db->limit(100);
        $this->db->from('content');
        $query = $this->db->get();
        return $query->result();
    }

你不工作是什么意思?抛出错误或错误的结果?错误的结果仅数组的第一个索引显示try
echo“SELECT*FROM screening”_回答uid所在的位置(“.introde(“,”,$ids)。”)
并查看它是否正在生成预期的查询。如果看起来不错,则数据库中没有数据。如果它看起来是错误的,那么修复SQL。如果
$ids
包含字母,则需要构建
in()
子句以在值周围使用引号。添加$this->db->last_query();在返回之前,请检查SQL。还返回num_rows()而不是数据集。你确定要这样做吗?是的,根据我的虚拟数据,我想要2个id的行数,但它只显示1个id,这是数组$id的第一个索引。你确定
$id
是数组吗请同时发布你的控制器代码…$student=$this->school\u model->get\u school\u students($institute);foreach(学生为$id);$record=$this->school\u model->get\u school\u students\u data($id);$this->load->view('analyst/header_a');$this->load->view(“分析师/附录a”);$this->load->view('analyst/footer')@GhulamMuhammadMujtaba我无法理解foreach($id为学生)为什么有分号
在foreach的末尾@GhulamMuhammadMujtaba这是在mysql的“IN()”中使用数组的最好方法。不明白为什么投票否决了这个?