今天我遇到了一个基于循环迭代创建动态查询的问题。下面是我的代码。
我的模特
public function get_chapters_from_subject(){
if(COUNT($_REQUEST['subjects']) > 1){
$this->db->where_in('question_modules', $_REQUEST['subjects']);
$y = $this->db->get($this->db->dbprefix('multi_bind_question'));
print_r($this->db->last_query());
print_r($y->result());
}
else{
echo "Only One ";
}
}
获得不同的结果后,我通过打印由codeigniter生成的查询来检查它。没事。查询在
之下打印后生成的查询,看起来像
SELECT * FROM `app_multi_bind_question` WHERE `question_modules` IN('10+1 Math', '10+2 Math')
结果中的问题
如果我在mysql / phpmyadmin上运行相同的查询,则返回3行(更正结果)。但是当我打印查询返回的结果如上所述的codeigniter模型函数时,它只返回一条记录。
答案 0 :(得分:1)
您的数据库表(模块)有问题。在 模块表 中将值更改为 10 + 2 Math ,然后结果将按预期显示。
由于这两个表的价值不匹配,你没有得到价值。
模块表为 10 + 2 Math (它有两个空格)
在multi_bind_question表中,它存储为 10 + 2 Math (它有一个空格)
您的代码中没有错误...
希望它会;解决你的问题
答案 1 :(得分:0)
试试这个!
public function get_chapters_from_subject(){
if(COUNT($_REQUEST['subjects']) > 1){
$this->db->where_in('question_modules', $_REQUEST['subjects']);
$y = $this->db->get($this->db->dbprefix('multi_bind_question'));
print_r($this->db->last_query());
print_r($y->result_array());
}
else{
echo "Only One ";
}
}
答案 2 :(得分:0)
在我看来,如果您的查询是正确的,那么您应该至少尝试一下:
add(SecondFragment)