Membuat tabel data berdasarkan tanggal Menggunakan CodeIgniter

saya ingin bertanya bagaimana cara menampilkan tabel seperti gambar dibawah menggunakan data dari database ? contoh tabel yang ingin ditampilkan :

tabel poin berdasarkan nama ruangan dan tanggal(perhitungan_indikator_tb):

tabel nama ruangan(level_tb) :

saya menggunakan CodeIgniter, untuk controller.php :

public function reportKelengkapanAsesmenAwalMedis(){
$this->load->model('Menu_m');
$data['jml'] = $this->Menu_m->reportKelengkapanAsesmenAwalMedisJml();
$data['tgl'] = $this->Menu_m->reportKelengkapanAsesmenAwalMedisTgl();
$data['level'] = $this->Menu_m->reportKelengkapanAsesmenAwalMedisIdLevel();
$data['poin'] = $this->Menu_m->reportKelengkapanAsesmenAwalMedisTotalPoin();
$data['data'] = $this->Menu_m->reportKelengkapanAsesmenAwalMedis();
$this->load->view('admin/indikator/KelengkapanAsesmenAwalMedis/report',$data);
}

untuk model.php :

public function getKelengkapanAsesmenAwalMedis(){
$this->db->select('perhitungan_indikator_tb.*');
$this->db->select('level_tb.*');
$this->db->from('perhitungan_indikator_tb');
$this->db->from('level_tb');
$this->db->where('status','1');
$this->db->where('perhitungan_indikator_tb.id_level = level_tb.id_level');
$query = $this->db->get();
return $query ->result_array();
}
public function reportKelengkapanAsesmenAwalMedisJml(){
$query = $this->db->query("SELECT COUNT(DISTINCT(tanggal)) AS jml FROM perhitungan_indikator_tb WHERE status = '1'");
return $query->row_array();
}
public function reportKelengkapanAsesmenAwalMedisTotalPoin(){
$query = $this->db->query("SELECT SUM(poin) as total FROM perhitungan_indikator_tb WHERE status = '1' GROUP BY tanggal");
return $query->result_array();
}
public function reportKelengkapanAsesmenAwalMedisTgl(){
$this->db->distinct();
$this->db->select('perhitungan_indikator_tb.tanggal');
$this->db->from('perhitungan_indikator_tb');
$this->db->where('status','1');
$this->db->order_by('perhitungan_indikator_tb.tanggal','ASC');
$query = $this->db->get();
return $query->result_array();
}
public function reportKelengkapanAsesmenAwalMedisIdLevel(){
$this->db->distinct();
$this->db->select('perhitungan_indikator_tb.id_level');
$this->db->select('level_tb.id_level');
$this->db->select('level_tb.nama_level');
$this->db->from('perhitungan_indikator_tb');
$this->db->from('level_tb');
$this->db->where('level_tb.id_level = perhitungan_indikator_tb.id_level');
$this->db->where('perhitungan_indikator_tb.status', '1');
$this->db->order_by('perhitungan_indikator_tb.id_level','ASC');
$query = $this->db->get();
return $query->result_array();
}
public function reportKelengkapanAsesmenAwalMedis(){
$query = $this->db->query("SELECT DISTINCT(perhitungan_indikator_tb.tanggal) as tgl,perhitungan_indikator_tb.poin,perhitungan_indikator_tb.status,perhitungan_indikator_tb.id_level,SUM(perhitungan_indikator_tb.poin) As total, level_tb.*  FROM perhitungan_indikator_tb, level_tb WHERE perhitungan_indikator_tb.status = '1' and level_tb.id_level = perhitungan_indikator_tb.id_level GROUP by perhitungan_indikator_tb.tanggal,perhitungan_indikator_tb.id_level ORDER By perhitungan_indikator_tb.tanggal ASC, perhitungan_indikator_tb.id_level ASC");
return $query ->result_array();
}

soalnya sudah saya coba, tetapi belum bisa nemukan caranya

<table class="table table-bordered table-hover" style="text-align: center">
<tr>
  <th rowspan="2" style="text-align: center">No</th>
  <th rowspan="2" style="text-align: center">Ruang</th>
  <th colspan="<?=$jml['jml']?>" style="text-align: center">Tanggal</th>
</tr>
<tr>
<?php
$no = 1;
foreach ($tgl as $tanggal) : ?>
	<td><?=date_indo($tanggal['tanggal'])?></td>
<?php endforeach ?>
</tr>

</tr>
<?php
foreach ($level as $lvl) : ?>
<tr>
  <td><?=$no++?></td>
  <td><?=$lvl['nama_level']?></td>
  <?php
  foreach ($tgl as $date) :
  foreach ($data as $d) :
  		if($d['id_level'] == $lvl['id_level'] && $d['tgl'] == $date['tanggal']){

  	?>
  <td><?=$d['poin']?></td>
  <?php
		} else{?>

	<?php
		}
  endforeach;
  endforeach; ?>

</tr>
<?php endforeach;  ?>
<tr>
	<th colspan="2" style="text-align: center">Total Poin</th>
	<?php foreach ($poin as $r) : ?>
	<td><?=$r['total']?></td>
<?php endforeach; ?>
</tr>
</table>

untuk tampilan nya sejauh ini (letak poin ruang VK tidak cocok dengan tanggal nya) :

datanya : saya banyak menggunakan query database karena tidak dapat ide untuk nampilkan tabel seperti diatas, ada yang bisa bantu ?

nb : teman teman yang ingin bantu, tidak wajib menggunakan codeigniter, menggunakan mysqli procedural juga bisa, nnti saya ubah ke format CI

Terimakasih

avatar Terra
@Terra

81 Kontribusi 39 Poin

Diperbarui 5 tahun yang lalu

Tanggapan

Orang-orang tidak tahu struktur database dan cara kamu memanggil datanya seperti apa.

1 Jawaban:

Cek lapak ini yang sudha ditanyakan:

<a href=' https://sekolahkoding.com/forum/pencarian-data-berdasarkan-dua-periode-tanggal '> https://sekolahkoding.com/forum/pencarian-data-berdasarkan-dua-periode-tanggal </a> <a href=' https://sekolahkoding.com/forum/pencarian-data-berdasarkan-dua-periode-tanggal-1548306034'>Kumpulan link pertanyaan periode per tanggal</a>

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 5 tahun yang lalu

Tanggapan

jika menggunakan query saya bisa gan, hanya saja menampilkan ke format tabel seperti diatas yang bikin saya mentok

Login untuk ikut Jawaban