2014-12-06 57 views
1

我有项目要求,学生可以申请学位,如果任何科目与学院添加的科目相匹配。 这里是表结构匹配逗号数据库php codeigniter中的独立值存储

institute table         student table 
----------------------------------   ----------------------------------- 
id | degree |  subject_required   id | subject_known 
1 | MS |  maths,electronics,CAD  1 craft,drama 
2  BSC  chemistry,biology    2  maths 
3  arts  craft,drama,dancing   3  cad,electronics 

这是代码我已经写在那里学会添加度和subject_required

public function add_degree($institute_id){ 
$data=array(
'id' => $institute_id, 
'degree' => $this->input->post('degree'), 
'subject_required'=>$this->input->post('subject_required'), 
); 
return $this->db->insert('institute',$data); 
} 

,当学生第一次注册自己

public function student_register(){ 
$data=array(
'id' => $institute_id, 
'subject_known'=>$this->input->post('subject_known'), 
); 
return $this->db->insert('student',$data); 
} 

怎么写这段代码我匹配这个主题要求,如果任何一个主题匹配,那么学生可以申请,并且这个主题由列

public function match_subject($id){ 
$sql='SELECT subject_required FROM institute WHERE id ='.$id; 
$query=$this->db->query($sql); 
foreach ($query->result() as $row) 
    { 
    $subject_required = $row->subject_required; 
     $subject_required=$this->explode(array(',',' '),$subject_required); 

    } 

} 

但我不能匹配主题要求。

回答

1

尝试与MySQL正则表达式

select * from institute where subject_required REGEXP '[[:<:]]chemistry[[:>:]]' 

我希望这将帮助你

+0

你的意思是我不需要使用爆炸功能? – software 2014-12-06 07:16:10

+0

是的,它匹配逗号分隔值 – 2014-12-06 07:17:26

+0

它的工作对我来说,我希望它也适用于你 – 2014-12-06 07:17:45