我在帖子中看到了这个答案,该帖子旨在发布来自特定set_id的数据库数据及其以下问题和答案。我觉得很难将它转换成必须分离成模型 - 控制器 - 视图的codeigniter原理。我需要一些帮助
它有3个表,并提出了这个代码:
<?php
$this->db->select('s.id as set, s.name as name, q.id as qid, q.question as qu, a.id as aid, a.answer as an, a.points as p')
->from('sets s')
->join('questions q', 'q.set_id = s.id')
->join('answers a', 's.set_id = s.id')
->where('s.id', 'SET ID');
$questions = $this->db->get();
$set = array('questions' => array());
foreach($questions as $s){
$set['id'] = $s->set;
$set['name'] = $s->name;
$set['questions'][$s->qid]['id'] = $q->qid;
$set['questions'][$s->qid]['question'] = $q->qu;
if(!isset($set['questions'][$s->qid]['answers']))
$set['questions'][$s->qid]['answers'] = array();
$set['questions'][$s->qid]['answers'][] = array(
'id' => $q->aid,
'answer' => $q->an',
'points' => $q->p
);
}
echo '<h2>'.$set['name'].'</h2>';
foreach($set['questions'] as $q){
echo '<div class="question">';
echo '<h3>'.$q['question'].'</h3>';
echo '<div class="answers">';
foreach($q['answers'] as $a){
echo '<label for="a'.$a['id'].'">'.$a['answer'].'<input type="checkbox value="'.$a['id'].'" name="q'.$q['id'].'" /></label><br />';
}
echo '</div>';
echo '</div>';
}
答案 0 :(得分:0)
一旦你习惯了MVC模式很简单。模型组件基本上处理数据库查询。您可以为不同的查询编写简单的函数,并将它们放在模型类下。 Controller基本上提取模型数据并提交给View组件。 在控制器内部,您将定义逻辑如何以及将数据放入不同的View类的位置。以下链接是一个检查的好地方。
答案 1 :(得分:0)
在此说明中存在问题
$set = $questions->result_array();