我还有另一个错误,当我尝试在视图中显示结果时,结果为NULL,我无法在模型中看到查询结果。
这是我的代码清单:
控制器上的(home.php):
$data['hasil5'] = $this->home_model->popular_list();
在模型(home_model.php)函数popular_list():
function popular_list($limit=2)
{
$this->db->select('news.*');
$this->db->where('id',$this->uri->segment(3));
$this->db->where('publish',1);
$this->db->where('viewed >= ',5);
$this->db->order_by('id','DESC');
$this->db->limit($limit);
$query = $this->db->get('news');
return $query->result();
} //thanks to kumar_v
和我的观点(home.php)作为“热门新闻”的一部分:
<h2>Most Popular News :</h2>
<?php
foreach ($hasil5 as $data5):
?>
<div class="welcome clear"><img class="imgl" src="<?php echo base_url(); ?>assets/news/original/<?php echo $data5->image; ?>" alt="" height="119" width="125" />
<div class="fl_right">
<h2><?php echo anchor($data5->kategori.'/detail/'.$data5->id,$data5->title) ?></h2>
<p><?php echo $data5->sinopsis; ?></p>
</div>
</div>
<?php
endforeach;
?>
结果为NULL,你能再次纠正吗?感谢..
答案 0 :(得分:1)
试试这个:
function popular_list($limit = 2) {
$query = $this->db->select('*')
->where('id',$this->uri->segment(3))
->where('publish',1)
->where('viewed >= ',5)
->order_by('id','DESC')
->limit($limit)
->get('news');
print_r($query->result());
return $query->result();
}
您可以将整个内容放在$query
变量中。而且,您可以通过将参数放在数组中来改善$this->db->where()
。
答案 1 :(得分:1)
你应该修改你的代码:
<?php
foreach ($data['hasil5'] as $data5):
?>
您在foreach
循环中使用了错误的变量。
答案 2 :(得分:1)
检查查询是否会返回任何行是个好主意。
function popular_list($limit=2)
{
$result = null;
$this->db->select('news.*');
$this->db->where('id',$this->uri->segment(3));
$this->db->where('publish',1);
$this->db->where('viewed >= ',5);
$this->db->order_by('id','DESC');
$this->db->limit($limit);
$query = $this->db->get('news');
if($query->num_rows() > 0)
{
$result = $query->result();
}
return $result;
}