drix47193 2019-08-14 06:57
浏览 89

返回数据为null,但是从模型设​​置时它可以工作

i have model method, the function is get data and sent it to view, but return is null, where is the error?

but when i changed $nilai_l = $row['under_l']; to $nilai_l = 10; it work, and 10 is sent to view, where is the error?

public function get_query_summary($param = "") {
    $l = 'L';
    $p = 'P';
    $tahun_akademik = $this->session->userdata('tahun_akademik');
    if (!empty($param["academic_year"])) {
        $tahun_akademik = $param['academic_year'];
    }

    $this->db->select(''
                    . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) < 18.5, 1, 0)) as under_l, '
                    . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) > 18.5 AND (L.BERAT / (L.TINGGI * L.TINGGI / 10000)) < 22.9 , 1, 0)) as ideal_l,'
                    . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) > 23 AND (L.BERAT / (L.TINGGI * L.TINGGI / 10000)) < 24.9 , 1, 0)) as warning_l,'
                    . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) > 25 AND (L.BERAT / (L.TINGGI * L.TINGGI / 10000)) < 29.9 , 1, 0)) as obesitas1_l,'
                    . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) > 30, 1, 0)) as obesitas2_l,'
                    . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) < 18.5, 1, 0)) as under_p,'
                    . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) > 18.5 AND (P.BERAT / (P.TINGGI * P.TINGGI / 10000)) < 22.9 , 1, 0)) as ideal_p,'
                    . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) > 23 AND (P.BERAT / (P.TINGGI * P.TINGGI / 10000)) < 24.9 , 1, 0)) as warning_p,'
                    . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) > 25 AND (P.BERAT / (P.TINGGI * P.TINGGI / 10000)) < 29.9 , 1, 0)) as obesitas1_p,'
                    . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) > 30, 1, 0)) as obesitas2_p,'
                    . 'SUM(P.BERAT / (P.TINGGI * P.TINGGI / 10000)) as total')
            ->from('m_siswa A')
            ->join('tb_medical_wh L', "A.ID = L.ID_SISWA AND A.JENIS_KELAMIN = '$l' AND L.TAHUN_AKADEMIK = '$tahun_akademik'", 'left')
            ->join('tb_medical_wh P', "A.ID = P.ID_SISWA AND A.JENIS_KELAMIN = '$p' AND P.TAHUN_AKADEMIK = '$tahun_akademik'", 'left');
}

public function get_list_html_summary($param) {
    $this->get_query_summary($param);
    $data = $this->get_datatables();

    $records["list"] = [];
    $month = array('Obesitas' => 0, 'Obesitas awal' => 0, 'Warning' => 0, 'Ideal' => 0, 'Underweight' => 0);

    foreach ($month as $key => $row) {
        $nilai_l = 0;
        $nilai_p = 0;
        $total = 0;
        switch ($key) {
            case 'Underweight':
                $nilai_l = $row['under_l'];
                $nilai_p = $row['under_p'];
                //$total     = $row['under_l']+$row['under_p'];
                break;

            case 'Ideal':
                $nilai_l = $row['ideal_l'];
                $nilai_p = $row['ideal_p'];
                //$total   = 23;   
                break;

            case 'Warning';
                $nilai_l = $row['warning_l'];
                $nilai_p = $row['warning_p'];
                //$total   = 33;
                break;

            case 'Obesitas awal';
                $nilai_l = $row['obesitas1_l'];
                $nilai_p = $row['obesitas1_p'];
                //$total   = 43;
                break;

            case 'Obesitas';
                $nilai_l = $row['obesitas2_l'];
                $nilai_p = $row['obesitas2_p'];
                //$total   = 53;
                break;
        }
        $records["list"][] = array(
            $key,
            $nilai_l,
            $nilai_p,
            $total
        );
    }
    return $records;
}
  • 写回答

1条回答 默认 最新

  • doulvli9462 2019-08-14 08:20
    关注

    You are assigning $row data which of course it wont work because it contains only months data. Try to assign the returned data from get_query_summary() method to a variable (for example $student_data), and also you need the get() and result_array() method to get the array results :

    public function get_query_summary($param = "") {
        $l = 'L';
        $p = 'P';
        $tahun_akademik = $this->session->userdata('tahun_akademik');
        if (!empty($param["academic_year"])) {
            $tahun_akademik = $param['academic_year'];
        }
    
        $this->db->select(''
                        . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) < 18.5, 1, 0)) as under_l, '
                        . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) > 18.5 AND (L.BERAT / (L.TINGGI * L.TINGGI / 10000)) < 22.9 , 1, 0)) as ideal_l,'
                        . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) > 23 AND (L.BERAT / (L.TINGGI * L.TINGGI / 10000)) < 24.9 , 1, 0)) as warning_l,'
                        . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) > 25 AND (L.BERAT / (L.TINGGI * L.TINGGI / 10000)) < 29.9 , 1, 0)) as obesitas1_l,'
                        . 'SUM(if((L.BERAT / (L.TINGGI * L.TINGGI / 10000)) > 30, 1, 0)) as obesitas2_l,'
                        . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) < 18.5, 1, 0)) as under_p,'
                        . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) > 18.5 AND (P.BERAT / (P.TINGGI * P.TINGGI / 10000)) < 22.9 , 1, 0)) as ideal_p,'
                        . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) > 23 AND (P.BERAT / (P.TINGGI * P.TINGGI / 10000)) < 24.9 , 1, 0)) as warning_p,'
                        . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) > 25 AND (P.BERAT / (P.TINGGI * P.TINGGI / 10000)) < 29.9 , 1, 0)) as obesitas1_p,'
                        . 'SUM(if((P.BERAT / (P.TINGGI * P.TINGGI / 10000)) > 30, 1, 0)) as obesitas2_p,'
                        . 'SUM(P.BERAT / (P.TINGGI * P.TINGGI / 10000)) as total')
                ->from('m_siswa A')
                ->join('tb_medical_wh L', "A.ID = L.ID_SISWA AND A.JENIS_KELAMIN = '$l' AND L.TAHUN_AKADEMIK = '$tahun_akademik'", 'left')
                ->join('tb_medical_wh P', "A.ID = P.ID_SISWA AND A.JENIS_KELAMIN = '$p' AND P.TAHUN_AKADEMIK = '$tahun_akademik'", 'left');
        return $this->db->get('m_siswa A')->result_array();
    
    }
    
    public function get_list_html_summary($param) {
        $student_data = $this->get_query_summary($param);
        $data = $this->get_datatables();
    
        $records["list"] = [];
        $month = array('Obesitas' => 0, 'Obesitas awal' => 0, 'Warning' => 0, 'Ideal' => 0, 'Underweight' => 0);
    
        foreach ($month as $key => $row) {
            $nilai_l = 0;
            $nilai_p = 0;
            $total = 0;
            switch ($key) {
                case 'Underweight':
                    $nilai_l = $student_data['under_l'];
                    $nilai_p = $student_data['under_p'];
                    //$total     = $student_data['under_l']+$student_data['under_p'];
                    break;
    
                case 'Ideal':
                    $nilai_l = $student_data['ideal_l'];
                    $nilai_p = $student_data['ideal_p'];
                    //$total   = 23;   
                    break;
    
                case 'Warning';
                    $nilai_l = $student_data['warning_l'];
                    $nilai_p = $student_data['warning_p'];
                    //$total   = 33;
                    break;
    
                case 'Obesitas awal';
                    $nilai_l = $student_data['obesitas1_l'];
                    $nilai_p = $student_data['obesitas1_p'];
                    //$total   = 43;
                    break;
    
                case 'Obesitas';
                    $nilai_l = $student_data['obesitas2_l'];
                    $nilai_p = $student_data['obesitas2_p'];
                    //$total   = 53;
                    break;
            }
            $records["list"][] = array(
                $key,
                $nilai_l,
                $nilai_p,
                $total
            );
        }
        return $records;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?