dongtun2572 2015-11-12 21:15
浏览 34

在codeigniter中汇总数组foreach

I'v a case, I made an application Social Network but there are some user can access lot of data. example: Rudi can access data "1", "2", & "3"; andi can access data "2" & "3"; Didi only access data "3". so I made tb_akses to diffirent the access. But when I want to sum the array, I don't know the way. Please help me.

This is my table in this question

tb_akses

CREATE TABLE IF NOT EXISTS `tb_akses` (
    `id_perespon` smallint(4) NOT NULL,
    `id_skpd_aduan` smallint(10) NOT NULL,
    PRIMARY KEY (`id_perespon`,`id_skpd_aduan`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `tb_akses` (`id_perespon`, `id_skpd_aduan`) VALUES
(2, 2),
(2, 3);

tb_pengaduan

CREATE TABLE IF NOT EXISTS `tb_pengaduan` (
    `no_hp_pengadu` smallint(12) NOT NULL,
    `id_skpd_aduan` varchar(100) NOT NULL DEFAULT '',
    `tgl_aduan` date NOT NULL,
    `nama_pengadu` varchar(100) NOT NULL,
    `judul_pengaduan` varchar(20) NOT NULL,
    `isi_aduan` varchar(200) NOT NULL,
    PRIMARY KEY (`no_hp_pengadu`,`id_skpd_aduan`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `tb_pengaduan` (`no_hp_pengadu`, `id_skpd_aduan`, `tgl_aduan`, `nama_pengadu`, `judul_pengaduan`, `isi_aduan`) VALUES
(0, '2', '0000-00-00', 'sss', 'newss', 'hai'),
(32767, '2', '0000-00-00', 'karlota', 'lamu ngnoi', 'stop lala mulu







'),
(32, '3', '2015-11-20', 'ss', 'lamu banget', 'sss'),
(323, '3', '0000-00-00', 'ss', 'lamu banget', 'sss'),
(32767, '70', '0000-00-00', 'santoooo', 'somo pulang', 'lama lech echhhhhhhh
'),
(20, '2', '0000-00-00', '..', 'lanjut', '..'),
(1111, '79', '0000-00-00', 'aaaa', 'aaaaa', 'aaaaa');

This is my model:

function select_akses_perespon(){
    $id_perespon=$this->session->userdata('id_perespon');
    $this->db->select('*');
    $this->db->from('tb_akses');
    $this->db->where('id_perespon',$id_perespon);
    return $this->db->get();
}

this is my controller:

$data['daftar_akses'] = $this->pengaduan_model->select_akses_perespon()->result();

this is my view

// I want to sum $jumlah in this Array
    <h4>Anda Memiliki<?php foreach ($daftar_akses as $akses){
    $this->db->select('*');
    $this->db->from('tb_pengaduan');
    $this->db->where('id_skpd_aduan',$akses->id_skpd_aduan);
    $query = $this->db->get();
    $jumlah = $query->num_rows();
    echo $jumlah;}?>Pemberitahuan</h4>

My result until now is:

"Anda Memiliki 32 Pemberitahuan"

But I want to sum "3"+"2" become "5". Please help me...

  • 写回答

2条回答 默认 最新

  • doucan4815 2015-11-13 01:25
    关注

    All you need is just $this->db->select_sum():

    Reference:

    https://ellislab.com/codeigniter/user-guide/database/active_record.html

    In your view:

    <h4>Anda Memiliki<?php foreach ($daftar_akses as $akses)
    {
        $this->db->from('tb_pengaduan');
        $this->db->select_sum('id_skpd_aduan');
        $this->db->where('id_skpd_aduan',$akses->id_skpd_aduan);
        $query = $this->db->get();
        $obj = $query->row();
        $jumlah = $obj->id_skpd_aduan;
        echo $jumlah;
    }
    ?>
    
    Pemberitahuan</h4>
    
    评论

报告相同问题?