Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
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
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>
Tanggapan
jika menggunakan query saya bisa gan, hanya saja menampilkan ke format tabel seperti diatas yang bikin saya mentok