【发布时间】:2014-01-28 20:42:49
【问题描述】:
$skills = explode(',', 'good listener,topper,leader');
$teacherID = 7;
function search_follower($teacherID, $skills, $limit, $start) {
$this->db->limit($limit, $start);
$this->db->select('student_skills.user_id');
$this->db->from('student_skills');
$this->db->join('followers', 'followers.student_id = student_skills.user_id', 'FULL JOIN');
foreach ($skills as $skill) {
$this->db->like('student_skills.name', $skill);
$this->db->or_like('student_skills.name', $skill);
}
$this->db->where('followers.teacher_id', $teacherID);
$query = $this->db->get();
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
student_skills 表:
idnameuser_id
1topper5
2leader5
3good listener6
4toper6
关注表:
idteacher_idstudent_id
175
176
178
我编写了上面的模型函数来从 student_skills 表中获取跟随特定老师 ($teacherID) 并具有指定技能 ($skills) 的学生的学生 ID..
当我使用多种技能(例如:优秀的倾听者、topper 等)或单一技能(例如:topper)运行上述功能时,它运行时没有显示任何错误..但它给了我所有具有指定技能的学生和我希望只有跟随特定老师的学生..并具有指定的技能..
但是当我评论 or_like 声明时,它给了我所需的结果,但多项技能不起作用.. ex: topper 工作和 ex:topper,topper 工作但 ex: topper,leader 不起作用
我正在努力解决这个问题 2 天.. 但还没有找到任何解决方案....
任何建议或帮助都会有很大帮助.. 提前致谢。
【问题讨论】:
标签: php mysql codeigniter activerecord join