Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter 如何计算控制器中的所有数据数组_Codeigniter_Postgresql - Fatal编程技术网

Codeigniter 如何计算控制器中的所有数据数组

Codeigniter 如何计算控制器中的所有数据数组,codeigniter,postgresql,Codeigniter,Postgresql,我想使用codeigniter对使用postgresql获得的数据数组进行计数。我使用foreach循环并使用count($row['zero'])进行计数,但结果仅为1。请指导我 这是我的控制器 public function indicators($pcode = '', $dcode = '') { $this->data['p_code'] = $pcode; $this->data['d_code'] = $dcode; $this->data

我想使用codeigniter对使用postgresql获得的数据数组进行计数。我使用foreach循环并使用count($row['zero'])进行计数,但结果仅为1。请指导我

这是我的控制器

public function indicators($pcode = '', $dcode = '') {
    $this->data['p_code'] = $pcode;
    $this->data['d_code'] = $dcode;
    $this->data['pcode'] = $this->employment_model->get_project();

        $this->data['attend_household'] = $this->employment_model->household_absent_all($dcode);
        var_dump($this->data['attend_household']);
        die();
        foreach($this->data['attend_household'] as $row){
            if($row['zero']>0){
                      $this->data['zerroo']=count($row['zero']);              
            }
        }
        if (count($this->data['attend_household']) > 0) {
            $this->data['attend_household'] = $this->data['attend_household'][0];
        }

    // var_dump($this->data);
    $this->load->view("employment_info", $this->data);
}
这是我的模型

function household_absent_all($dcode) {
    $dcode_query = "";
    if ($dcode != '') {
        if ($dcode == 'all') {
            $dcode_query = "";
        } else {
            $dcode_query = "where t.dcode='$dcode'";
        }
    }
    $sql = "select (100-(sum(days_worked)/sum(days_offered))*100) as zero,regno,sum(days_offered) as days_offered,sum(days_worked) as days_worked
        from(
            select*
            from assets.tblprojects a
            join(
            select pcode as project,hh_jobcard_no
            from employment.work_group_member
            )wg on a.pcode=wg.project
            join(
            select regno,at.days_offered,at.days_worked                                  
            from employment.registration_hh_member

             join(
            select pcode as a_pcode,hh_jobcard_no as jobcard,mem_id,
            sum((shift_1*0.5)+(shift_2*0.5)) as days_worked,count(adate) as days_offered
            from employment.attendence
            group by a_pcode,jobcard,mem_id
            )at on regno=at.jobcard and s_no=at.mem_id
            )rhm on wg.hh_jobcard_no=rhm.regno                
            )t
            group by regno
            $dcode_query
            ";
    $result = $this->db->query($sql)->result_array();
    return $result;
}

使用num_rows()作为计数器如何

if($num = $result->num_rows() >=1){
    $result = array('result_set'=>$result->result_array(),'result_count'=>$num);
}else{
    $result = array('result_set'=>FALSE,'result_count'=>FALSE);
}
return $result;
然后在您的控制器上,您可以将其用作计数的
$variable['result\u count']
,以及数据结果的
$variable['result\u set']

尝试这样做

$i=0;
 foreach($this->data['attend_household'] as $row){
            if($row['zero']>0){
                     $i++;           
            }
        }
 $this->data['zerroo']=$i;

你想统计表格中的所有记录吗?不,我想根据条件只统计零。这意味着你想只统计这一$row['zero']我有这样的数组0=>array'zero'=>string'11.32075471698113207500'(length=23)'regno'=>string'KEP-63013-25'(length=12)“提供的天数”=>字符串“53”(长度=2)“工作天数”=>字符串“47.0”(长度=4)1=>数组“零”=>字符串“0.79365079365100”(长度=22)“regno”=>字符串“KEP-64004-118”(长度=13)“提供的天数”=>字符串“63”(长度=2)“工作天数”=>字符串“62.5”(长度=4)。。。我想要的是,如果0的值大于0,那么计数的结果