Jumat, 23 September 2016

Bikin JSON dengan PHP dan MySQL

InilahData, - Sama seperti XML, JSON tidak menggantikan peran database, tetapi menjadi sarana pertukaran data yang diambil dari database. Sekarang mari kita lihat bagaimana cara membuat bentuk-bentuk JSON dengan bahasa pemograman PHP agar terhubung ke database MySQL.

Pada PHP versi 5.2 telah terdapat fungsi untuk membuat JSON, yaitu fungsi json_encode( ). Adapun bentuk penulisannya sebagai berikut :

string json_encode ( mixed $value [, int $options= 0 ] )

Keterangan :
  • $value adalah nilai yang akan di encode menjadi string JSON
  • $option, ada beberapa pilihan, yaitu JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_FORCE_OBJECT. Adapun nilai defaultnya adalah 0.
Contohnya dalam skrip PHP :

<?php
 $arr = array ('a' = >1, 'b' = >2,'c' = >3,'d' = >4,'e' = >5);
echo json_encode($arr);
?> 

Skrip tersebut akan menghasilkan

{"a":1,"b":2,"c":3,"d":4,"e":5,}

Selanjutnya, kita akan membuat JSON dengan mengambil data dari database "anggota" yang adan buat dulu sebelumnya (ambil databasenya di sini anggota.sql ) dan kita akan menggunakan fungsi json_encode( ). Berikut skripsnya :

Skrip anggotajson.php

<?php
//koneksi ke database
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "anggota";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

//query ambil data member
$sql     = "SELECT * FROM member";
$q     = mysql_query($sql) or die(mysql_error());

//buat variabel $rows sebagai array
$rows = array();
while ($r = mysql_fetch_assoc($q)) {
    $rows[] = $r;
}
$data = "{member:".json_encode($rows)."}";
echo $data;
?>



Sekarang coba jalankan skrip anggotajson.php, maka hasilnya akan terlihat seperti pada gambar di bawah ini :

Ambil data dari database MySQL dengan JSON

Selain menggunakan fungsi json_encode( ), kita juga bisa membuat JSON secara manual dengan menggunakan PHP. Membuat JSON secara manual, yang terpenting adalah kita harus tahu penempatan setiap elemen. Selain itu, membuat JSON secara manual kadang kita perlukan bilamana tidak semua field akan kita ambil dari database, berbeda ketika fungsi json_encode( ) kita gunakan, maka semua field dari tabel akan terambil semua.

Mari kita modifikasi skrip anggotajson.php sebelumnya untuk membuat JSON secara manual :

Skrip anggotajson.php (modifikasi)

<?php
//koneksi ke database
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "anggota";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

$sql = "SELECT * FROM member";
$q     = mysql_query($sql) or die(mysql_error());

//buka json
$json  = '{"member": [';
// bikin looping untuk data array yang di fetch
while ($row = mysql_fetch_array ($q)) {
$json .= '{"id":"'.$row[id].'","nama":"'.$row['nama'].'"},';
}

// untuk menghilangkan koma diakhir array
$json = substr($json,0,strlen($json)-1);

//lengkapi penutup format JSON
$json .= ']}';


// tampilan json
echo $json;

?> 

Sekarang coba jalankan lagi skrip anggotajson.php yang telah kita modifikasi (tanpa menggunakan fungsi json_encode( ). Jika hasilnya sama seperti pada gambar di atas, maka skrip modifikasi kita telah berhasil.

Tidak ada komentar:

Posting Komentar