Postingan lainnya
Mengurutkan nama bulan pada tabel
Ceritanya sy sedang membuat kartu spp sekolah. Nah bagaimana caranya saya mengurutkan nama bulan sesuai urutan bulan spp yang sudah terbayar. Contoh tabel yg sy inginkan sebagai berikut
tabel-spp.PNG
Yg pada intinya dia akan melangkahi baris bulan berdasarkan urutan nama bulan yg seharusnya. Contoh lain, siswa mulai membayar spp nya bulan maret, maka akan ada 2 baris kosong sebelumnya untuk bulan januari dan februari.
Mungkin teman2 bisa ngasih pencerahan berupa logic nya seperti apa, berikut sy sertakan kode view pada tabel saat ini
<tr>
<td><?php echo $cekbulan['bulan_nama']; ?></td>
<td><?php echo date('d-m-Y', strtotime($sid['ps_tanggal'])); ?></td>
<td><?php echo number_format($sid['ps_jumlah'],0,',','.'); ?></td>
</tr>
Untuk hasil dari kode sy di atas mungkin teman2 sudah bisa tebak, dia akan menampilkan data seperti pada umumnya. Jadi semua nama bulan akan numpuk tanpa ada baris yg di langkahi.
Mohon pencerahannya, terima kasih.
6 Jawaban:
<div>Kalau saya kepikirannya bikin "manual"<br><br>$namaBulan = ['januari', 'februari ... dst...]<br>Lalu loop array $namaBulan ini, dan tinggal cocokkan /output data yang sesuai dari sumber data.<br>Jika tidak ada maka dikososngkan</div>
<div>Bisa menggunakan if else pada tag tr<br><br>Misalnya jika </div><pre>$cekbulan['bulan_nama']</pre><div>atau</div><pre>number_format($sid['ps_jumlah'],0,',','.')</pre><div>atau</div><pre>date('d-m-Y', strtotime($sid['ps_tanggal']))</pre><div>bernilai null, maka jadikan tr tersebut display none<br>Jika menggunakan bootstrap tinggal tambahkan kelas d-none pada tag <tr><br>Jika tidak bisa menggunakan<br><br></div><pre>style="<?= $cekbulan['bulan_nama'] == 'null' ? 'display: none' : '' ?>"</pre><div><br>contoh kodingannya</div><pre><tr class="<?= $cekbulan['bulan_nama'] == 'null' ? 'd-none' : '' ?>"> <td><?php echo $cekbulan['bulan_nama']; ?></td> <td><?php echo date('d-m-Y', strtotime($sid['ps_tanggal'])); ?></td> <td><?php echo number_format($sid['ps_jumlah'],0,',','.'); ?></td> </tr></pre><div><br>Semoga membantu</div>
<div>baru mau jawab if mirip yang akan di sampaikan @<a href="https://sekolahkoding.com/user/Muhtasaq">Muhtasaq</a> tapi karena sudah di pakai,, aku jawab dengan pendekatan lain,,,<br>buat saja while atau for bulan (1-12)<br>lalu untuk $sid['ps_jumlah'] menggunakan function<br>hal ini untuk mengatasi juga jika ada siswa yang membayar spp 1 bulan 2x</div><div><br>kalau misal ada pertanyaan/penambahan, bisa balas dan tanyakan <br>semoga membantu ^^</div>
<div>Terima kasih responnya teman2, saya akan coba satu per satu.</div>
<div>Saya baru nyobain yg logic dari bang hilman, apakah maksudnya sperti ini?, berikut kode saya</div><pre><?php foreach($siswaid as $sid): ?> <?php $cekbulan = $this->db->get_where('tb_bulan',['bulan_id' => $sid['ps_bulan']])->row_array(); ?> <?php $listbulan = $this->db->get('tb_bulan')->result_array(); ?> <?php foreach($listbulan as $lb): ?> <?php if($lb['bulan_id'] == $sid['ps_bulan']) { ?> <tr> <td><?php echo $cekbulan['bulan_nama']; ?></td> <td><?php echo date('d-m-Y', strtotime($sid['ps_tanggal'])); ?></td> <td><?php echo number_format($sid['ps_jumlah'],0,',','.'); ?></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <?php }else { ?> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <?php } ?> <?php endforeach; ?> <?php endforeach; ?></pre><div><br>Dan berikut hasilnya<br><figure data-trix-attachment="{"contentType":"image/png","filename":"tabel-spp2.PNG","filesize":7960,"height":546,"url":"https://i.ibb.co/LpRK06M/tabel-spp2.png","width":469}" data-trix-content-type="image/png" data-trix-attributes="{"presentation":"gallery"}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/LpRK06M/tabel-spp2.png" width="469" height="546"><figcaption class="attachment__caption"><span class="attachment__name">tabel-spp2.PNG</span></figcaption></figure><br>Sebenarnya hampir berhasil hehe, cuma baris setelah januari itu terlalu banyak, tapi baris setelah maret sudah pas. Mohon koreksinya bang hilman<br><br></div>
Jawaban Terpilih
<div>Sudah bisa, berikut kode nya</div><pre><?php $cekbulan ; foreach($siswaid as $sid) { $cekbulan[$sid['ps_bulan']] = $this->db->get_where('tb_bulan',['bulan_id' => $sid['ps_bulan']])->row_array(); } ?> <?php $listbulan = $this->db->get('tb_bulan')->result_array(); ?> <?php foreach($listbulan as $lb): ?> <?php if(isset($cekbulan[$lb['bulan_id']])) { ?> <tr> <td><?php echo $cekbulan[$lb['bulan_id']]['bulan_nama']; ?></td> <td><?php echo date('d-m-Y', strtotime($sid['ps_tanggal'])); ?></td> <td><?php echo number_format($sid['ps_jumlah'],0,',','.'); ?></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <?php }else { ?> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <?php } ?> <?php endforeach; ?></pre>