if语句在codeigniter3框架中不起作用

时间:2017-09-17 12:32:13

标签: php codeigniter

我写了一些代码,检查是否有课程显示tr标签,如果没有,请不要显示。但是,如果尽管结果为空,则语句不起作用。 这里显示正确,因为该讲师有课程enter image description here

然而,另一位教师没有任何课程,因此在这里它不应该显示<tr>标签,但它显示空的tr enter image description here

问题出在哪里?

这是我的模特:

public function get_instructors_lessons($slug = FALSE) {
        if ($slug === FALSE) {
            $this->db->join('courses', 'instructors.id = courses.instructor_id');
            $query = $this->db->get('instructors');
            return $query->row_array();
        }

        $this->db->join('courses', 'instructors.id = courses.instructor_id', 'left');
        $query = $this->db->get_where('instructors', array('instructors_slug' => $slug));
        return $query->result_array();
    }

以下是我的观点:

<?php if(count($lessons)>0): ?>
  <?php foreach($lessons as $lesson): ?>
    <tr>
      <td>
        <a class="lessonsofinstructors" href="<?= site_url('/courses/'.$lesson['courses_slug']);?>">
          <?= $lesson['title'] ?>
        </a>
      </td>
      <td>
        <?= $lesson['duration'] ?> Months</td>
      <td>
        <?= $lesson['begining'] ?>
      </td>
    </tr>
    <?php endforeach; ?>
      <?php endif; ?>

1 个答案:

答案 0 :(得分:0)

无论是否有课程,左连接都会获取教练的数据。所以你需要另一种连接类型,我认为默认适合:

public function get_instructors_lessons($slug = FALSE) {
    if ($slug === FALSE) {
        $this->db->join('courses', 'instructors.id = courses.instructor_id');
        $query = $this->db->get('instructors');
        return $query->row_array();
    }

    // no join type here
    $this->db->join('courses', 'instructors.id = courses.instructor_id');
    $query = $this->db->get_where('instructors', array('instructors_slug' => $slug));
    return $query->result_array();
}