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.

avatar Ahmad554
@Ahmad554

95 Kontribusi 39 Poin

Diperbarui 2 tahun yang lalu

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>

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 2 tahun yang lalu

<div>Bisa menggunakan if else pada tag tr<br><br>Misalnya jika&nbsp;</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 &lt;tr&gt;<br>Jika tidak bisa menggunakan<br><br></div><pre>style="&lt;?= $cekbulan['bulan_nama'] == 'null' ? 'display: none' : '' ?&gt;"</pre><div><br>contoh kodingannya</div><pre>&lt;tr class="&lt;?= $cekbulan['bulan_nama'] == 'null' ? 'd-none' : '' ?&gt;"&gt; &lt;td&gt;&lt;?php echo $cekbulan['bulan_nama']; ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo date('d-m-Y', strtotime($sid['ps_tanggal'])); ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo number_format($sid['ps_jumlah'],0,',','.'); ?&gt;&lt;/td&gt; &lt;/tr&gt;</pre><div><br>Semoga membantu</div>

avatar Muhtasaq
@Muhtasaq

10 Kontribusi 6 Poin

Dipost 2 tahun yang lalu

<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&nbsp;<br>semoga membantu ^^</div>

avatar yukari06
@yukari06

137 Kontribusi 66 Poin

Dipost 2 tahun yang lalu

<div>Terima kasih responnya teman2, saya akan coba satu per satu.</div>

avatar Ahmad554
@Ahmad554

95 Kontribusi 39 Poin

Dipost 2 tahun yang lalu

<div>Saya baru nyobain yg logic dari bang hilman, apakah maksudnya sperti ini?, berikut kode saya</div><pre>&lt;?php foreach($siswaid as $sid): ?&gt; &lt;?php $cekbulan = $this-&gt;db-&gt;get_where('tb_bulan',['bulan_id' =&gt; $sid['ps_bulan']])-&gt;row_array(); ?&gt; &lt;?php $listbulan = $this-&gt;db-&gt;get('tb_bulan')-&gt;result_array(); ?&gt; &lt;?php foreach($listbulan as $lb): ?&gt; &lt;?php if($lb['bulan_id'] == $sid['ps_bulan']) { ?&gt; &lt;tr&gt; &lt;td&gt;&lt;?php echo $cekbulan['bulan_nama']; ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo date('d-m-Y', strtotime($sid['ps_tanggal'])); ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo number_format($sid['ps_jumlah'],0,',','.'); ?&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;?php }else { ?&gt; &lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;?php } ?&gt; &lt;?php endforeach; ?&gt; &lt;?php endforeach; ?&gt;</pre><div><br>Dan berikut hasilnya<br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;tabel-spp2.PNG&quot;,&quot;filesize&quot;:7960,&quot;height&quot;:546,&quot;url&quot;:&quot;https://i.ibb.co/LpRK06M/tabel-spp2.png&quot;,&quot;width&quot;:469}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" 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>

avatar Ahmad554
@Ahmad554

95 Kontribusi 39 Poin

Dipost 2 tahun yang lalu

Jawaban Terpilih

<div>Sudah bisa, berikut kode nya</div><pre>&lt;?php $cekbulan ; foreach($siswaid as $sid) { $cekbulan[$sid['ps_bulan']] = $this-&gt;db-&gt;get_where('tb_bulan',['bulan_id' =&gt; $sid['ps_bulan']])-&gt;row_array(); } ?&gt; &lt;?php $listbulan = $this-&gt;db-&gt;get('tb_bulan')-&gt;result_array(); ?&gt; &lt;?php foreach($listbulan as $lb): ?&gt; &lt;?php if(isset($cekbulan[$lb['bulan_id']])) { ?&gt; &lt;tr&gt; &lt;td&gt;&lt;?php echo $cekbulan[$lb['bulan_id']]['bulan_nama']; ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo date('d-m-Y', strtotime($sid['ps_tanggal'])); ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo number_format($sid['ps_jumlah'],0,',','.'); ?&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;?php }else { ?&gt; &lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;?php } ?&gt; &lt;?php endforeach; ?&gt;</pre>

avatar Ahmad554
@Ahmad554

95 Kontribusi 39 Poin

Dipost 2 tahun yang lalu

Login untuk ikut Jawaban