Foreach循环只显示几个项目

时间:2014-07-03 13:05:28

标签: php database codeigniter foreach

我正在使用CodeIgniter。 我需要使用foreach循环从数据库中获取一些数据。 我在数据库中有4个项目,但循环只检索其中两个项目(id为2和4的项目)。 这是控制器中foreach的代码:

  $this->load->model('home_model');

        $data['query']=$this->home_model->get_films($limit);

        if ($data['query']) {
         $data['main_content'] = 'home';   
         $data['film'] = array();   
         foreach($data['query'] as $film_info) {
         $data['film'] = array(
          'id' => $film_info->id,   
          'poster_src' => $film_info->film_poster_src,   
          'title' => $film_info->film_name,
          'year' => $film_info->film_year,  
          'genre_id' => $film_info->genre_id,
         );

         $this->db->select('*');
         $this->db->from('genres');
         $this->db->where('id', $film_info->genre_id);
         $query1 = $this->db->get();
         $genre_info = $query1->row();
         $data['genre_name'] = $genre_info->genre_name;

         $this->db->select('*');
         $this->db->from('votes');
         $this->db->where('film_id', $film_info->id);
         $this->db->where('vote', '1');
         $query2 = $this->db->get();
         $data['votes_count'] = $query2->num_rows();
        }
        $this->load->view('template', $data);

这是模型中的代码:

<?php

class Home_model extends CI_Model
{
    function get_films($limit)
    {
        $query = $this->db->get('films', $limit, $this->uri->segment(2));
        return $query->result();
    }
}

这是视图中的代码:

<div class="col-sm-6 col-md-4">
     <div class="thumbnail">
      <img src="<?php echo $film['poster_src'] ?>" alt="Film poster">
      <div class="caption">
        <h3><?php echo $film['title'] ?></h3>
        <p>Year: <?php echo $film['year'] ?></p> 
        <p>Genre: <?php echo $genre_name ?></p>
        <p>Votes: <?php echo $votes_count ?></p>
        <p><a href="#" class="btn btn-primary" role="button">Watch</a> <a href="#" class="btn btn-default" role="button">Add to bookmarks</a></p>
      </div>
    </div>
  </div>

如果我将foreach代码放在视图中,它就可以正常工作。

1 个答案:

答案 0 :(得分:0)

我不是100%肯定所以不投票如果错误只是让我意识到我将尝试另一种方式,如果可能。在foreach循环尝试将数据放在另一个数组这样

$new_array[] = $the_result_value_you want

然后你就可以在循环之外使用$ new_array了