2017-10-04 7 views
0

こんにちは、私は自分のクエリが成功したかどうかをチェックしようとしていますが、クエリが成功したように見えるNULL値のインデックスを返しています。 NULLインデックスを返すべきではないと思うので、クエリがサンプルクエリで成功したかどうかを確認するにはどうすればよいですか。Codeigniter:クエリはNULLの値を返します

モデル

public function classmanage_classinfo($section_id) { 
      $query = $this->db->select('students.user_id, students.studentnumber, 
       students.lastname, students.firstname, students.middlename, students.level, students.year')->from('sections') 
      ->join('student_section', 'student_section.section_id = sections.section_id', 'left') 
      ->join('students', 'students.user_id = student_section.student_id', 'left') 
      ->where('sections.section_id', $section_id) 
      ->get(); 

    if ($query->num_rows() > 0) { 
     return $query->result(); 
    } else { 
     return false; 
    } 
} 

コントローラ

$data['class_info'] = $this->staff_model->classmanage_classinfo($section_id); 

表示

<p><?php var_dump($class_info) ?></p> 

enter image description here

私のvar_dumpによれば、アレイは、行前夜としてカウントされnインデックスはnullですが?なぜこうなった。クエリが成功しなかった場合、if文でfalseがトリガされることをどのように確認できますか。このロジックを改善する方法や解決する方法があれば、大歓迎です。ありがとう。

編集:

全コントローラ

$data['class_info'] = $this->staff_model->classmanage_classinfo($section_id);//determinant if query is null is in the model 
      $data['section_info'] = $this->staff_model->classmanage_sectioninfo($section_id); 

フルモデル

public function classmanage_classinfo($section_id) { 
     $query = $this->db->select('students.user_id, students.studentnumber, 
      students.lastname, students.firstname, students.middlename, students.level, students.year')->from('sections') 
     ->join('student_section', 'student_section.section_id = sections.section_id', 'left') 
     ->join('students', 'students.user_id = student_section.student_id', 'left') 
     ->where('sections.section_id', $section_id) 
     ->get(); 

     if ($query->num_rows() > 0) { 
      return $query->result(); 
     } else { 
      return false; 
     } 
    } 

    public function classmanage_sectioninfo($section_id) { 
     //section_name 
     $query = $this->db->select('section_name')->where('section_id', $section_id)->get('sections'); 

     return $query->row(); 

    } 
+0

echo $ this-> db-> last_query();出口;最後に実行されたクエリが表示されます。phpmyadmin –

+0

私の投稿の情報を編集しました。最後に行ったクエリは 'classmanage_sectioninfo'でした。 – user827391012

+0

すべての値がNULLであってもレコードが存在します。おそらく 'user_id'列にnull値を許可しないでください。 – DFriend

答えて

0

私はあなたのクエリが多くの行ない単一の行を返すことを想定しています。

​​3210
+0

これは正しいです、 'num-> rows()'も可能でなければなりません、私は私のクエリで内部結合を使うべきであることを理解しましたhttps://stackoverflow.com/questions/5706437/whats-the -Difference-inner-join-left-join-right-join-and-full-joinの違い – user827391012

関連する問題