【问题标题】:Foreach loop shows only few itemsForeach 循环仅显示少数项目
【发布时间】:2014-07-03 13:05:27
【问题描述】:

我正在使用 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 代码放在视图中,它可以正常工作。

【问题讨论】:

  • 你在$data['query'] 上做过var_dump / print_r 看看它是否有4 个元素?
  • 是的,它显示了 4 个项目的数组。
  • 那你的问题是什么?在视图中?
  • 我不确定,因为它似乎是对的。
  • 我不明白为什么如果我将代码放在视图中它会完美运行。

标签: php database codeigniter foreach


【解决方案1】:

我不是 100% 肯定,所以不要投票,如果 false 只是让我知道如果可能的话我会尝试另一种方式。在 foreach 循环中尝试将数据放入另一个数组中,像这样

$new_array[] = $the_result_value_you want

那么你就可以在循环外使用 $new_array

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多