Php 将数组传递给模型函数查询codeigniter
这是我的函数,我想在in()子句中放入数组值,但它不起作用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
这里
$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()”中使用数组的最好方法。不明白为什么投票否决了这个?