3つのテーブルからレコードを結合し、結果を画面に出力する方法は問題があります。私は解決策を作ったが、スピードには不向きであり、より良い解決策を模索してきた。私のテーブルは以下のとおりです。foreachなしで3つのテーブルからレコードを表示する方法
テストテーブル
id_test
testName
質問表
id_quest
id_test
question
回答テーブル
id_answer
id_quest
answer
すべてのテストには7つの質問があり、すべての質問には10の回答があります。
このレコードを画面に表示するにはforeachなしでデータベースクエリを書き込むにはどうすればよいですか?私は完全に使用して「where_in」の代わりに、あなたのデータベースにクエリのトンを投げになり
$this->db->select('id_test,testName,description,time,type,sum');
$this->db->where('id_test',$idTest);
$query['test'] = $this->db->get('tests')->result()[0];
$this->db->select('id_quest,inquiry');
$this->db->where('id_test',$idTest);
$query['questions'] = $this->db->get('questions')->result();
$i=0;
foreach ($query['questions'] as $question) {
$this->db->select('id_answer,response,value');
$this->db->where('id_quest',$question->id_quest);
$query['questions'][$i]->answer = $this->db->get('answer')->result();
$i++;
}
return $query;
ループを使用するか、クエリーが返すものについてループ内のすべての行を書き出します。 –
私は既に書いた別の方法で書くことはできませんか? – Sasa
はい、whileを使用できますが、ループは必須です。 – Phiter