Php 如果需要,将mysql视图与列视图组合

Php 如果需要,将mysql视图与列视图组合,php,codeigniter,mysqli,Php,Codeigniter,Mysqli,我在这里真的需要帮助和启发:-) 我有3种看法: 第一视图“vtabulasi_capaianbantu_fix”: 第二视图“vtabulasi_capaianbantu”: 第三视图“获取平均值和总和”: 目前,我已经使用了此模型中调用的视图: 型号: $this->db->select("*"); $query = $this->db->get('3rd_view'); return $query->result_array()

我在这里真的需要帮助和启发:-)

我有3种看法:

第一视图“vtabulasi_capaianbantu_fix”:

第二视图“vtabulasi_capaianbantu”:

第三视图“获取平均值和总和”:

目前,我已经使用了此模型中调用的视图:

型号:

$this->db->select("*");
        $query = $this->db->get('3rd_view');
        return $query->result_array(); 
一切都好。在MVC->表的视图循环之前都通过了良好的测试。 现在的问题是:

  • 我无法更改视图查询“where子句”,因为我需要在第一个视图中查询此数据年筛选器(
    a
    tblpok\u tahun
    )。有什么意见/解决方案吗
  • 我无法控制迭代时的第一视图(12对1字段),因为我无法将php变量传递给第一视图查询。(例如,如果我需要过滤从第1个月到第4个月的数据,在我的php表单中,已经有几个月的组合框,我选择4)。然后,我需要限制嵌套,如果仅从1到4个嵌套。我们怎么做
  • 我担心使用多个组合视图和大量的IF进程会导致性能下降。(加载时间8s)
  • 我应该找到另一种查询策略吗?它应该在mysql或php端大量编码吗

  • 感谢您的回复。

    OMG。我在webdev工作了大约10年,但我以前从未见过这样的事情。您是否使用
    视图
    作为查询?这就是我要更改的内容。。。。任何解决方案?使用
    控制器
    检测您需要对请求执行的操作,调用合适的
    模型
    处理数据并将处理后的数据返回到
    控制器
    ,然后将处理后的数据从
    控制器
    发送到
    视图
    ,以便为用户绘制任何内容。这将调用
    MVC
    @George Sazanovich,感谢您的回复,我已经做到了,简单地说,我所要求的主要是模型策略方法。。。不是mvc。我使用控制器来协调所有请求。我的问题在模型方面。
        SELECT
        `a`.`tblpok_tahun` AS `tblpok_tahun`,
        `a`.`refsubunit_id` AS `refsubunit_id`,
        `a`.`tblpok_kodesubunit` AS `tblpok_kodesubunit`,
        `a`.`tblpok_kodeunit` AS `tblpok_kodeunit`,
    
    IF (
        (`a`.`tblpok_targetkeu` > 100),
        100,
        `a`.`tblpok_targetkeu`
    ) AS `tblpok_targetkeu`,
    
    IF (
        (
            `a`.`tblpok_targetfisik` > 100
        ),
        100,
        `a`.`tblpok_targetfisik`
    ) AS `tblpok_targetfisik`,
    
    IF (
        (
            `a`.`tblpok_realisasikeu` > 100
        ),
        100,
        `a`.`tblpok_realisasikeu`
    ) AS `tblpok_realisasikeu`,
    
    IF (
        (
            `a`.`tblpok_realisasifisik` > 100
        ),
        100,
        `a`.`tblpok_realisasifisik`
    ) AS `tblpok_realisasifisik`,
     `a`.`tblpok_realisasikeunominal` AS `tblpok_realisasikeunominal`,
     `a`.`tblpok_uraian` AS `tblpok_uraian`
    FROM
        `vtabulasi_capaianbantu_fix` `a`
    
        SELECT
        `a`.`refsubunit_id` AS `refsubunit_id`,
        `a`.`tblpok_kodesubunit` AS `tblpok_kodesubunit`,
        `a`.`tblpok_kodeunit` AS `tblpok_kodeunit`,
        `a`.`tblpok_uraian` AS `tblpok_namasubunit`,
        avg(`a`.`tblpok_realisasikeu`) AS `tblpok_realisasikeu`,
        sum(
            `a`.`tblpok_realisasikeunominal`
        ) AS `tblpok_realisasikeunominal`,
        (
            SELECT
                avg(`b`.`tblpok_realisasikeu`)
            FROM
                `vtabulasi_capaianbantu` `b`
        ) AS `tblpok_realisasikeu_allskpd`,
        (
            SELECT
                sum(`c`.`tblpok_apbdmurni`)
            FROM
                `vtabel_tblpok_level2_by_subunitid` `c`
        ) AS `tblpok_apbdmurni_allskpd`,
        (
            SELECT
                sum(`c`.`tblpok_apbdperubahan`)
            FROM
                `vtabel_tblpok_level2_by_subunitid` `c`
        ) AS `tblpok_apbdperubahan_allskpd`,
        (
            SELECT
                sum(
                    `b`.`tblpok_realisasikeunominal`
                )
            FROM
                `vtabulasi_capaianbantu` `b`
        ) AS `tblpok_realisasikeunominal_allskpd`,
        `c`.`tblpok_apbdmurni` AS `tblpok_apbdmurni`,
        `c`.`tblpok_apbdperubahan` AS `tblpok_apbdperubahan`
    FROM
        (
            `vtabulasi_capaianbantu` `a`
            JOIN `vtabel_tblpok_level2_by_subunitid` `c` ON (
                (
                    `a`.`refsubunit_id` = `c`.`refsubunit_id`
                )
            )
        )
    GROUP BY
        `a`.`refsubunit_id`
    
    $this->db->select("*");
            $query = $this->db->get('3rd_view');
            return $query->result_array();