Cara menggunakan mysql> select as xml

InilahData, -  Untuk men-generate file XML dari database MySQL, sebelumnya kita akan membuat sebuah databasenya, misalnya "anggota" dan tabelnya "member" dengan dua field yaitu "id" dan "nama".

Untuk membuatnya, aktifkan Xampp, lalu bukalah phpmyadmin di browser dengan alamat http://localhost/phpmyadmin/, kemudian isikan pada bagian Create new database: anggota, lalu klik tombol Create. Lihat gambar di bawah ini :

Cara menggunakan mysql> select as xml
Membuat database "anggota" melalui phpMyadmin
Kemudian klik pada tab SQL, lalu pada bagian Run SQL Query, tuliskan query untuk membuat tabel "member" dan isi datanya 2 record. Adapun isi query-nya :

CREATE TABEL `member`(
`id`  tinyint(4) unsigned NOT NULL auto_increment PRIMARY KEY,
`nama`  varchar(200) collate utf8_unicode_ci NOT NULL
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `member` (`nama`) VALUES (`Ahmad Asyhadi`), (`Joko Prihatin`);

Untuk jelasnya, silahkan lihat gambar di bawah ini :

Cara menggunakan mysql> select as xml
Query untuk membuat tabel member beserta datanya
Selanjutnya, kita buatkan skrip php untuk menghasilkan file xml, kita namakan "anggota.php". Dan file ini disimpan ke dalam folder htdocs di xampp Anda.

Skrip anggota.php

<?php
//koneksi database mysql
$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 elemen root
$xml = "<memberlist>";


//Ambil data dari database dan diletakkan ke dalam elemen root
while($r = mysql_fetch_array($q)){
  $xml .= "<member>";
  $xml .= "<id>".$r['id']."</id>"; 
  $xml .= "<nama>".$r['nama']."</nama>";
  $xml .= "</member>"; 
}
$xml .= "</memberlist>";


//instansiasi objek SimpleXMLElement
$sxe = new SimpleXMLElement($xml);
$sxe->asXML("member.xml");
?>


Apabila skrip anggota.php dijalankan, maka akan menghasilkan file "member.xml" yang struktur dokumen XML-nya dapat dilihat pada gambar di bawah ini :

Cara menggunakan mysql> select as xml
Hasil skrip anggota.php membentuk file member.xml   

Setelah menulis artikel membuat dan parsing JSON dengan menggunakan PHP dan MySQL serta membuat file csv serta bagaimana cara mem-parsing-nya dengan PHP dan MySQL. Pada kesempatan ini saya akan menulis artikel mengenai pembuatan dan parsing dokumen XML, juga dengan menggunakan PHP dan MySQL.

XML (eXtensible Markup Language) adalah format umum yang digunakan untuk membuat bahasa markup baru. XML mendefinisikan seperangkat aturan untuk dokumen yang dikodekan secara elektronik. Bahasa markup digunakan untuk memisahkan konten dari struktur dokumen elektronik dengan jelas.

Keuntungan XML :

  • Tag tidak terbatas dan memungkinkan banyak fleksibilitas.
  • Dengan XML Anda pada dasarnya menulis bahasa markup Anda sendiri yang memungkinkan Anda membuat bahasa sesuai dengan tugas tertentu.
  • Sehubungan dengan HTML, XML mendukung pemisahan GUI dari data / konten dengan menggunakan style sheet khusus.

Kekurangan XML :

  • XML ​​tidak memiliki sistem untuk pemrosesan aplikasi sehingga dokumen XML harus dikonversi, ke HTML misalnya.
  • Fleksibilitas yang diberikannya juga bisa menjadi kerugian karena ada ketidaksepakatan di antara tag atau objek dan ini bisa menambahkan kendala yang menyulitkan pembuatan file.
  • Isu terkait bisa muncul jika sebuah organziasi memiliki ratusan fungsi untuk satu set dokumen yang perlu dijelaskan dengan tag.
  • Terlalu banyak tag untuk struktur dokumen tunggal dapat mengganggu kemampuan XML untuk memproses informasi.

MEMBUAT DOKUMEN XML DENGAN PHP DAN MYSQL

Karena tutorial ini merupakan kelanjutan dari tutorial sebelumnya, maka database dan table yang digunakan adalah sama.

Membuat database baru yaitu : db_belajar. Kemudian buat table dengan perintah SQL:

CREATE TABLE IF NOT EXISTS `tb_anggota` (
  `anggota_id` int(5) NOT NULL AUTO_INCREMENT,
  `nama` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `alamat` varchar(50) NOT NULL,
  `umur` int(2) NOT NULL,
  PRIMARY KEY (`anggota_id`)
) ENGINE=INNODB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Kemudian, masukkan beberapa record :

INSERT INTO `tb_anggota` (`nama`, `email`, `alamat`, `umur`) VALUES
('Wayan', '[email protected]', 'Badung', 21),
('Made', '[email protected]', 'Gianyar', 19),
('Nyoman', '[email protected]', 'Klungkung', 30),
('Ketut', '[email protected]', 'Tabanan', 23),
('Gede', '[email protected]', 'Karangasem', 27);

Buat file create_xml.php untuk, men-generate dokumen xml dari record yang ada di table tb_anggota.

');
//menampilkan data dari database, table tb_anggota
$sql = "select * from tb_anggota";
$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));

//membuat array
while ($row = mysqli_fetch_assoc($result)) {

    $track = $xml->addChild('anggota');
    $track->addChild('nama', $row['nama']);
    $track->addChild('email', $row['email']);
    $track->addChild('alamat', $row['alamat']);
    $track->addChild('umur', $row['umur']);
}

print($xml->asXML());
//tutup koneksi ke database
mysqli_close($connection);
?>

PARSING DOKUMEN XML DENGAN PHP DAN MENYIMPANNYA DI DATABASE MYSQL

Misalnya kita memiliki dokumen XML dengan nama dataanggota.xml, seperti di bawah ini :

<?xml version="1.0"?>
<xml>
<anggota>
	<nama>Toni</nama>
	<email>[email protected]</email>
	<alamat>Bandung</alamat>
	<umur>35</umur>
</anggota>
<anggota>
	<nama>Asep</nama>
	<email>[email protected]</email>
	<alamat>Bandung</alamat>
	<umur>18</umur>
</anggota>
<anggota>
	<nama>Ucok</nama>
	<email>[email protected]</email>
	<alamat>Medan</alamat>
	<umur>23</umur>
</anggota>
</xml>

Buat file parsing_xml.php untuk memparsing data pada dokumen xml tersebut sekaligus menyimpan datanya ke dalam database.

';
foreach ($file as $key => $value) {
    echo $i . "
"; echo "nama : " . $value->nama . "
"; echo "email : " . $value->email . "
"; echo "alamat : " . $value->alamat . "
"; echo "umur : " . $value->umur . "

"; $sql = "INSERT into tb_anggota(nama,email,alamat,umur) VALUES('" . $value->nama . "','" . $value->email . "','" . $value->alamat . "','" . $value->umur . "')"; mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection)); $i++; } //tutup koneksi ke database mysqli_close($connection); ?>

Coba buka table tb_anggota untuk memastikan data sudah disimpan dengan benar. Anda bisa mencoba tag bersarang pada dokumen XML, karena tutorial ini masih sederhana 🙂