1
我已經寫了一個模型代碼,我加入兩個表並返回結果。Codeigniter只返回我的模型類中的一行
我在我的表中有26個結果,但下面我提到的代碼只返回一行!可能是什麼原因?爲什麼它只返回一行?
請幫我關於這個問題
更新
表結構
question
-----------
question_id PK Auto_Incr
question varchar...
votes int
answer
------------
answer_id PK Auto_icre
question_id FK refrences question
content longtext
從下面的表結構我的模型代碼表明只有2個問題數,跳過最後一個問題,經過一番研究,我發現它不包括我的第三個問題的原因,這是因爲它在我的answer
表中沒有任何答案。
我想,如果沒有答案,那麼它應該顯示count = 0的特定問題,如何解決這個問題?
表數據結構的數據:
question
-----------
question_id question votes
1 what's name? 0
2 where you? 3
3 blah blah 9
answer
----------
answer_id question_id content
4 2 India
5 2 Nepal
6 2 Pakistan
7 1 Mr Osama Binladan
型號
public function fetch_allquestions($limit, $start)
{
$this->load->database();
$this->db->limit($limit, $start);
$this->db->from('question');
$select =array(
'question.*',
'userdetails.*',
'COUNT(answer.answer_id) AS `Answers`'
);
$this->db->select($select);
$this->db->join('answer','answer.question_id = question.question_id');
$this->db->join('userdetails','userdetails.user_id = question.user_id');
$query = $this->db->get();
print_r("Number of rows=".$query->num_rows());//showing only One, out of 26 rows
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data[] = $row;
}
return $data;
}else{
return false;
}
}
我保留了你的group_by代碼,但它仍然返回一行。我的db-> last_query()返回這個sql'SELECT'question'。*,'userdetails'。*,COUNT(answer.answer_id)AS'Answers' FROM('question')JOIN'answer' ON'answer'。 'question_id' ='question'.'question_id' JOIN'userdetails' ON'userdetails'.'user_id' ='question'.'user_id' GROUP BY'answer'.''question_id' LIMIT 5' –
看起來像你只有一個不同的答案表中的question_id比。如果沒有您的實際數據,我無法分辨。你可以嘗試用sql建立你的查詢,並在你想要的時候把它切斷成CI的方法調用。另外,請記住,使用group by -s選擇非聚合列可能是不可預測的,請參閱http://stackoverflow.com/a/1591976/1515540。 – complex857
事實上,它不工作,現在我發現問題爲什麼它不顯示我的問題表的另一行。它只顯示了有答案的問題。那些沒有答案的問題不在計算。我如何修改我的上述代碼以滿足我的新要求? –