我正在努力做到这一点,以便您可以查看网站上某些内容的行数,我将结果转换为数组,然后在视图中进行了遍历,但是将参数称为无效。
正如我所说,我尝试了通常的做法,将数据从模型传递到控制器,然后传递到视图。我尝试将$query->num_rows();
和count_all_results
返回到控制器数组以供在视图中使用,两者均无效。
controller.php
$this->load->model('Main');
$data = array(
'getapps' => $this->Main->countapps()
);
$this->load->view('header', $data);
view.php
<?php foreach($getapps as $apps) {
?>
<a href="http://localhost/Dir/index.php/Controller/Apps" class="a-m" id="a-m-id">apps <strong><?php echo $apps; ?></strong></a>
<?php }
?>
model.php
public function countapps() {
$this->db->where('usedby', $_SESSION['uid']);
$this->db->get_where('apps', 'appstatus', 'Used');
$stmt = $this->db->count_all_results();
return $stmt;
}
我希望发生的是视图显示行数,而是告诉我foreach参数无效。
答案 0 :(得分:2)
在CI中,$this->db->count_all_results()
用$this->db->get()
代替数据库查询。因此,您不能同时使用$this->db->get_where()
和$this->db->count_all_results()
,而应使用num_rows()
。
这样编写模型函数:
public function countapps() {
$query=$this->db->where('usedby', $_SESSION['uid'])
->get_where('apps', 'appstatus', 'Used');
$stmt = $query->num_rows();
return $stmt;
}
您可以将控制器的名称更改为较短的文字:
$data['getapps'] => $this->Main->countapps();
然后在您看来,您不需要使用foreach()
,因为$ data ['getapps']不是数组而是数字。您可以像
echo $getapps;