0

関数が最初のループデータのみを返すという同様の問題があります。結果は 2 つのループになり、各ループには行データが含まれます。たとえば、最初のループは A で 5 行のデータがあり、2 番目のループは B で 5 行です。戻り値は A だけで 5 行なので、10 行になるはずです。5 行 A + 5 行 B. コードはどうあるべきか? モデルのこの関数は次のとおりです

function getDataForm($data_search)
{
    $i=0;
    if(!empty($data_search['arr_idacl']))
    {
        foreach($data_search['arr_idacl'] as $idx => $val)
        {
            if(!empty($operatingHour))
            {
                $sql = "SELECT be_acl_resources.description as description,DATE_FORMAT(tbl_camera_detail.start_time,'%d %M %Y ') as datadate, SUM(IF(tbl_consolid_detail.operation = 'plus' AND tbl_consolid_detail.direction = 'IN',tbl_camera_detail.enters,0))+SUM(IF(tbl_consolid_detail.operation = 'minus' AND tbl_consolid_detail.direction = 'IN',tbl_camera_detail.enters*(-1),0))+SUM(IF(tbl_consolid_detail.operation = 'plus' AND tbl_consolid_detail.direction = 'OUT',tbl_camera_detail.exits,0))+SUM(IF(tbl_consolid_detail.operation = 'minus' AND tbl_consolid_detail.direction = 'OUT',tbl_camera_detail.exits*(-1),0)) as total_enter FROM tbl_consolid JOIN tbl_consolid_detail ON tbl_consolid.id = tbl_consolid_detail.consolid_id JOIN tbl_config_data ON tbl_consolid_detail.config_data_id = tbl_config_data.id JOIN tbl_camera ON tbl_config_data.id_acl = tbl_camera.id_acl JOIN tbl_camera_detail ON tbl_camera.id = tbl_camera_detail.camera_id JOIN be_acl_resources ON tbl_consolid.id_acl = be_acl_resources.id WHERE tbl_camera.date >= '".$data_search['start_date']."' AND date_format(tbl_camera_detail.start_time, '%H, %i %S') >= '".$startOpratingHour."' AND date_format(tbl_camera_detail.start_time, '%H, %i %S') <= '".$operatingHour['finish_time']."' AND tbl_camera.date <= '".$data_search['end_date']."' AND tbl_consolid.id_acl = '".$val."' GROUP BY tbl_camera.date";               
                echo $sql;               
                $query = $this->db->query($sql);
                $result_data[] = $query->result();
                //return $result;
            }
            $i++;
        }
        return $result_data;
    }   
}
4

1 に答える 1