Beranda > CodeIgniter, Pemrograman, Software > Codeigniter – Melewatkan dan Menampilkan 2 Query Dalam 1 View

Codeigniter – Melewatkan dan Menampilkan 2 Query Dalam 1 View

Codeigniter

Bisakah melewatkan dan menampilkan 2 SQL query dalam 1 view? Jawabannya BISA. Pada tutorial ini kita membuat skenario menampilkan dan mengexport kebentuk file Excel tabel dengan header yang diambil dari nama field yang ada di tabel ‘pengguna’ dan isi tabel merupakan isi tabel ‘pengguna’.

Berikut langkahnya:

Buat tabel ‘pengguna’.

CREATE TABLE IF NOT EXISTS `pengguna` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`nama` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`no_ktp` varchar(25) NOT NULL,
`phone` varchar(20) NOT NULL,
`kelamin` varchar(25) NOT NULL,
`level` varchar(10) NOT NULL,
`log_terakhir` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Isi tabel ‘pengguna’.

INSERT INTO `pengguna` (`id`, `nama`, `password`, `no_ktp`, `phone`, `kelamin`, `level`, `log_terakhir`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', '123456', '123456789', 'L', 'Admin', '2014-09-08'),
(2, 'user', 'ee11cbb19052e40b07aac0ca060c23ee', '456456546', '54645645', 'P', 'User', '2014-09-08');

Buat 2 fungsi pada file Model.

public function ambil2xls(){
        $cari=$this->db->get('pengguna');
        if($cari->num_rows()>0)
        {
            foreach($cari->result() as $baris)
            {
                $hasil[]=$baris;
            }
            return $hasil;
        }
    }
    public function ambilheaderxls(){
        $sql3 = "select column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='pengguna'";
        $dapat = $this->db->query($sql3);
        if($dapat->num_rows()>0)
        {
        foreach ($dapat->result() as $barishasil)
        {
           $dapathasil[]=$barishasil;
        }  
        return $dapathasil;  
        }
    }

Fungsi ambil2xls adalah untuk mengambil semua data pada tabel ‘pengguna’. Sedangkan fungsi ambilheaderxls untuk mengambil semua nama field pada tabel ‘pengguna’.

Buat sebuah file View dan beri nama data_viwe.php

<?php
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=exceldata.xls");
header("Pragma: no-cache");
header("Expires: 0");
?>
<table border='1' width="70%">
<tr>

<?php
$no1=0;
foreach($dapathasil as $barisdatahasil) {
$no1++;
$hurufgede=strtoupper($barisdatahasil->column_name);
echo    "<td>$hurufgede</td>";
} 

?>

</tr>
<?php
$no=0;

foreach($hasil as $row) {
$no++;
echo    "<tr>";
echo    "<td>$row->id</td>";
echo    "<td>$row->nama</td>";
echo    "<td>$row->password</td>";
echo    "<td>$row->no_ktp</td>";
echo    "<td>$row->phone</td>";
echo    "<td>$row->kelamin</td>";
echo    "<td>$row->level</td>";
echo    "<td>$row->log_terakhir</td>";
echo    "</tr>";
}
echo    "</table>";

?>

Baris 2-5 merupakan header yang digunakan untuk export tabel menjadi file Excel.

Baris 10-21 mengambil data yang dihasilkan oleh fungsi ambilheaderxls  dalam file model dan dijadikan header tabel.

Baris 21-40 mengambil data yang dihasilkan oleh fungsi ambil2xls dalam file model yang merupakan isi dari tabel yang akan diexport kebentuk Excel.

Terakhir buat fungsi pada Controller. Inilah inti dari tutorial kali ini.

public function data2xls()
{
$cari = $this->admin_model->ambil2xls();
if ($cari)
{
    $data['hasil'] = $cari;
}

$dpthasil = $this->admin_model->ambilheaderxls();
if ($dpthasil)
{
    $data['dapathasil'] = $dpthasil;
}

$this->load->view('data_view',$data);    
}</pre>
<pre>

Baris 3-7 controller memanggil fungsi ambil2xls  dan memasukkan data kedalam variabel array $data[‘hasil’].

Baris 9-13 controller memanggil fungsi ambilheaderxls  dan memasukkan data kedalam variabel array $data[‘dapathasil’].

Baris 15 controller menampilkan view (data_view) dengan melewatkan 2 query result yang dipanggil sebelumnya dan disimpan dalam variabel $data.

Sumber.

Semoga bermanfaat…

Terima Kasih.

  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan komentar