Function di MySQL

Dimisalkan gw punya database dengan salah satu nama tabelnya adalah “provinsi”, dengan isi tabelnya adalah :

kode_prov nama_prov
11 NANGGROE ACEH DARUSSALAM
12 SUMATERA UTARA
13 SUMATERA BARAT
14 RIAU
15 JAMBI

Dengan dibantu bahasa pemrograman basis web (contoh di artikel ini memakai PHP) , ingin ditampilkan di browser keseluruhan tampilan isi tabel provinsi dari database (contoh di artikel ini memakai MySQL) dengan format tampilan berupa tabel. Dengan header kode_prov diganti dengan KODE PROVINSI dan nama_prov diganti dengan NAMA PROVINSI. Ada beberapa macam cara untuk menampilkannya, secara garis besar gw ambil dengan 2 cara, yaitu :

Metode klasik, yaitu hampir semua proses dilakukan oleh PHP dari pengaturan struktur hingga tampilannya, proses SQL hanya sebagai query pemanggilan seluruh isi dalam tabel.

Sumber kode (PHP) :

    public function classic() {
        $query  = $this->db->get('provinsi') ;
 
        $table  = "<table border='1'>" ;
        $table  .= "<tr><td>KODE PROVINSI</td><td>NAMA PROVINSI</td></tr>" ;
 
        foreach($query->result() AS $provinsi) {
            $table  .= "<tr>" ;
            $table  .= "<td>".$provinsi->kode_prov."</td>" ;
            $table  .= "<td>".$provinsi->nama_prov."</td>" ;
            $table  .= "</tr>" ;
        }
 
        $table  .= "</table>" ;
 
        echo $table ;
    }

Metode modern, yaitu proses dilakukan query SQL , dimana tidak hanya memanggil isi dalam tabel tapi juga ikut membangun struktur dan tampilan. PHP hanya bertindak sebagai perantara untuk kemudian diterima oleh browser. Metode ini biasanya melibatkan fitur yang ada dalam RDBMS, di antaranya adalah stored procedure, function, dan triggers. Pada artikel bagian pertama ini akan diberikan contoh tentang Metode Fungsi di MySQL.

Sumber kode (MySQL) :

DELIMITER $$
 
DROP FUNCTION IF EXISTS table_provinsi $$
CREATE FUNCTION table_provinsi () RETURNS TEXT
BEGIN
	DECLARE done INT DEFAULT 0 ;
	DECLARE table1, table2 TEXT ;
	DECLARE name, code VARCHAR(255) ;
	DECLARE province CURSOR FOR SELECT nama_prov, kode_prov FROM provinsi ;  
	DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1 ;
 
	SET table1	= '<table border="1"><tr><td>KODE PROVINSI</td><td>NAMA PROVINSI</td></tr>' ;
 
	OPEN province ;
 
	REPEAT 
		FETCH province INTO name, code ;
		IF NOT done THEN
			SET table1	= CONCAT(table1,'<tr><td>',code,'</td><td>',name,'</td></tr>') ;
		END IF ;
	UNTIL DONE END REPEAT ;
 
	CLOSE province ;
 
	SET table2 = CONCAT(table1,'</table>') ;
 
	RETURN table2 ;
END$$
 
DELIMITER ;

Sumber kode (PHP) :

    public function modern() {
        $query  = $this->db->query("SELECT table_provinsi() AS tabel_provinsi") ;
 
        $table  = $query->row() ;
 
        echo $table->tabel_provinsi ;
    }

Good Luck!

CMIIW.

Keterangan :

Sumber kode PHP di atas dibangun menggunakan Framework CodeIgniter dan untuk mempelajari stored procedure and function di MySQL tidak mutlak harus mempelajari CodeIgniter.

Referensi :
MySQL 5.0 Reference Manual

VN:F [1.9.0_1079]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.0_1079]
Rating: 0 (from 0 votes)