Skip to main content

Mysql Array to PHP Array dan Implode [Kasus Pengecekan Pembayaran SPP]

Jepara, Lagi mau Nulis lagi atau mendokumentasikan permasalahan dan cara mengatasinya. Masalah ini sebenarnya adalah masalah ketika saya membuat aplikasi pembayaran SPP yang terintegrasi dengan SMS Gateway (Gammu). saya memiliki tabel pembayaran seperti ini :

CREATE TABLE IF NOT EXISTS `t_bayar_siswa` (
  `id_bayar` int(11) NOT NULL AUTO_INCREMENT,
  `id_tahun_ajar` int(11) DEFAULT NULL,
  `nis` varchar(12) DEFAULT NULL,
  `kd_rombel` varchar(15) DEFAULT NULL,
  `id_keringanan` int(11) DEFAULT NULL,
  `nominal` varchar(20) DEFAULT NULL,
  `tglbayar` date DEFAULT NULL,
  `blnbayar` varchar(4) DEFAULT NULL COMMENT 'bln 1,2,3,4,dst',
  `username` varchar(20) DEFAULT NULL,
  `tanggal_akses` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id_bayar`),
  UNIQUE KEY `id_bayar` (`id_bayar`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Dumping data for table `t_bayar_siswa`
--

INSERT INTO `t_bayar_siswa` (`id_bayar`, `id_tahun_ajar`, `nis`, `kd_rombel`, `id_keringanan`, `nominal`, `tglbayar`, `blnbayar`, `username`, `tanggal_akses`) VALUES
(1, 1, '89099', 'X TKJ 1', 2, '180000', '2013-04-25', '1', 'admin', '2013-04-25 12:00:59'),
(2, 1, '89099', 'X TKJ 1', 2, '180000', '2013-04-25', '2', 'admin', '2013-04-25 12:00:59'),
(3, 1, '89099', 'X TKJ 1', 2, '180000', '2013-04-25', '3', 'admin', '2013-04-25 12:00:59'),
(4, 1, '89099', 'X TKJ 1', 2, '180000', '2013-04-25', '4', 'admin', '2013-04-25 12:00:59');


Dengan melihat kondisi tabel seperti diatas maka siswa dengan NIS 89099 telah membayar SPP selama 4 bulan ( bulan Juli, Agustus, September dan Oktober).

Kasusnya/Masalahnya adalah bagaimana pengecekan melalui SMS dengan keyword "SPP#NIS" bisa menampilkan bulan apa saja yang sudah dibayar oleh siswa.
caranya adalah menggunakan array(), dengan membuat array() kita konvert sql ke array baca php manual, kode lengkapnya seperti ini:
 <?php
/*
 ;author : Muhammad Taufiq Muslih
 ;web : http://tovexs.blogspot.com
 */
 mysql_connect('localhost','root','');
 mysql_selectdb('db_spp');
$q=mysql_query("select * from inbox where Processed='false'");
while ($a=mysql_fetch_array($q)) {
    $id=$a[ID];
    $number=$a[SenderNumber];
    $text=strtoupper($a[TextDecoded]);
    //explode pecah
    $explode=explode("#",$text);
    

    if ($explode[0]=="$spp" and $nis=$explode[1]) {
        $res=mysql_query("select t_siswa.*, t_bayar_siswa.*,
                case blnbayar
                when '1' then 'Juli'
                when '2' then 'Agustus'
                when '3' then 'September'
                when '4' then 'Oktober'
                when '5' then 'November'
                when '6' then 'Desember'
                when '7' then 'Januari'
                when '8' then 'Februari'
                when '9' then 'Maret'
                when '10' then 'April'
                when '11' then 'Mei'
                when '12' then 'Juni'
                end as bulan
                from t_bayar_siswa
  left join t_siswa on t_siswa.nis=t_bayar_siswa.nis
  where t_bayar_siswa.nis='$nis'");
        $data=array();
        if (mysql_num_rows($res)== 0); //$balas ="Data Tidak ditemukan";
        else if (mysql_num_rows($res) > 0) {
            while($row=mysql_fetch_assoc($res)) {
            $nama=$row[nm_siswa];
            $niss=$row[nis];
            $data[]=$row[bulan];
        }
        
            $arraybln=implode(",", $data);
            $balas="".$niss."\n Bulan Terbayar:\n ".$arraybln."\n SMKN3Jepara ";
            mysql_query("insert into outbox(DestinationNumber, TextDecoded) VALUES ('$number', '$balas')");
        }
    } 
    $qU=mysql_query("UPDATE inbox SET Processed = 'true' WHERE ID = '$id'");
}
?>

Penjelasan pada kode
 $data[]=$row[bulan];
akan menghasilkan array dan pada fungsi implode baca PHP manual
$arraybln=implode(",", $data);
akan menghasilkan
Juli Agustus September Oktober
fungsi implode dalam sms gateway ini adalah untuk menampung array agar proses looping hanya didalam variable $arraybln.

dengan memanfaatkan fungsi implode ini maka proses reply sms tidak akan ada looping karena proses pengecekan NIS=bulan, karena fungsi implode membundling bulan dalam satu variable..

 mohon maaf bila ada salah kata dan penjelasan yang kurang jelas :D.

referensi PHP.NET

Comments

Popular posts from this blog

Logika IF AND dalam Excel perhitungan Kelulusan

Tulisan ini adalah sebagai jawaban dari pertanyaan dari seorang teman. dan pertanyaannya.! Bagaimana mengetahui status kelulusan jika nilai akhir paling rendah 5.5 dan nilai setiap mapel paling rendah 4.0, selain itu maka tidak lulus. Langsung Jawab aja. digambarkan seperti gambar dibawah ini. Karena sudah diketahui bentuk datanya seperti gambar diatas langsung saja di susun rumusnya. rumusnya menggunakan IF dan AND. kenapa menggunakan Rumus AND Excel karena terdapat dua logika (kriteria) atau lebih yang semuanya harus memenuhi syarat maka menghasilkan nilai TRUE. Jika salah satu logika tidak terpenuhi sesuai dengan syarat yang ditetapkan, maka akan menghasilkan nilai FALSE. dan berikut ini rumusnya. =IF(AND(F6>=4,F7>=4,F8>=4,F9>=4,F10>=4,F12>=5.5),"Lulus","Tidak Lulus")  dan liat hasilnya *) Karena tadi kriterianya adalah nilai mapel paling rendah 4 dan nilai akhir paling rendah 5.5, walaupun disitu ada nilai empat maka dia di...

Malam Minggu dijepara 3/3/12

Malam minggu memang asik buat pacaran. hehehe itu yang punya pacar :) kalo aku karena masih jauh nan disana ya jalan-jalan adja ketemu teman-teman. ada hal menarik dalam perjalananku, tadi malam itu jepara rame banget. semua berpakaian rapi, dandan yang cantik, tetapi ada juga yang berpakaian semrawut :) tetapi tetep rapi. Kondisi jalan malam itu lumayan padat apalagi di alun-alun jepara. semua tertumpah disana bermain,ngobrol, sepedaan dll. @alun2 jepara juga tiap malam minggu banyak komunitas anak muda seperti (motor, sepatu roda,sepeda,mig33, kaskus, etc) melakukakn gathering. duh asyik tuh sambil mamerin tuh yang dimiliki unik unik dan menarik untuk dilihat. Namun ironis ya sebelahnya alun-alun jepara ada masjid yang lagi ada kegiatan pengajian yang isinya ibu2, bapak2 dan sedikit anak muda. yach itu sih pilihan mau kemana yang dituju, senang entar di akhirat pilih sebelah ( red-masjid) mau senengnya dunia (red-alun-alun) pokoknya bebasa dah malam minggu :) .

Menulis Simbol Matematika di Moodle

Setelah berhasil install Wiris untuk Math Tools untuk menulis simbol-simbol matematika. nah sekarang saya mau berbagi tips Langkah-langkah menulis simbol-simbol matematika di moodle. Oke Langsung saja. Gambaran Umumya, anda sudah mempunyai Course dan siap menambahkan materi/Quiz atau yang lain-lain. example menambahkan resource Compose a web Page.