Codeigniter,如何传递COUNT结果我的观点

时间:2014-02-06 22:54:35

标签: codeigniter count

我将数据从模型传递到我的视图时遇到问题。在数据库中我有一些项目,我需要计算一些任务。我的问题是:如何使用foreach将结果传递给视图。 (echo $ this-> db-> count_all_results();在MODEL中显示效果不错)


  1. 项目1:5个任务
  2. 项目2:10项任务
  3. 项目3:1任务

  4. MODEL:

    function wyswietl($arrayid){
    $query = $this->db->query("SELECT COUNT( id_zadania ) AS zlicz
    FROM projekty_zadania
    WHERE id =$arrayid");
    return $query->result();
    

    CONTROLLER

    function WszystkieProjekty(){
    $data['moje'] = $this->Todo_model->wyswietlWszystkieProjekty();
     $arrayid = array();
       foreach( $data['moje'] as $row ){
       $row->id;
       $aaa = $row->id;
       $arrayid[] = $this->Todo_model->wyswietl($aaa);
        }
     $data['tabid'] = $arrayid;
     $this->load->view('Projekty.html', $data);
    }
    

    MODEL:

    function wyswietlWszystkieProjekty(){
    
    $query = $this->db->query("SELECT * FROM todo");
    
    
     return $query->result();
    

    }

2 个答案:

答案 0 :(得分:0)

在您的查询中,您已计算了数据,因此我认为您可以从$ query-> rows() - > zlics获取模型中的总数据。在控制器中,只需像往常一样将其传递给视图

$data['moje'] = $this->Todo_model->wyswietlWszystkieProjekty(); $this->load->view('Projekty.html', $data);

答案 1 :(得分:0)

您将结果集传递回控制器,因此您需要做的就是迭代结果集,生成实际的行。这不是太难,你有正确的想法。

你有:

function wyswietl($arrayid){
$query = $this->db->query("SELECT COUNT( id_zadania ) AS zlicz
FROM projekty_zadania
WHERE id =$arrayid");
return $query->result();

作为你应该返回计数的模型函数,对吧?最简单的方法就是从模型中保持控制器不必做腿部工作。当你在mysql中运行count函数时,你只会在你的情况下返回一行,所以使用num_rows()不会有帮助,因为这个查询总是会产生1行。

function wyswietl($arrayid){
    $query = $this->db->query("SELECT COUNT(id_zadania) AS zlicz
        FROM projekty_zadania
        WHERE id =$arrayid");
    $rs = $query->result();
    return $rs[0]['COUNT(id_zaedania)'];
}