【发布时间】: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