Free Ebook Tutorial from Rosihan Ari's Blog

Ebook Javascript | Ebook PHP | Ebook AJAX | Ebook CSS | Ebook FPDF | Ebook Wordpress | Ebook Java SE




Export Data Dari MySQL ke XML dengan PHP


July 22nd, 2009 | by rosihanari |


Jual kaos

Beberapa hari yang lalu, saya telah memposting artikel bagaimana membuat script PHP untuk mengimport data dari XML ke MySQL. Nah… untuk artikel kali ini, saya akan coba bahas kebalikannya yaitu membuat script PHP untuk export data dari MySQL ke XML.

Mau tahu caranya? Simak artikel ini baik-baik ya :-)

Dalam artikel ini, kita akan memanfaatkan data yang telah tersimpan dalam tabel ‘book’ MySQL seperti yang sudah dibahas di artikel import data dari XML ke MySQL. Nah.. tujuan dari script yang akan kita buat ini nanti yaitu mengenerate dokumen XML dari data yang telah tersimpan dalam tabel ‘book’ tersebut.

OK.. bagaimana cara membuat scriptnya? pertama kita buat asumsi terlebih dahulu bahwa dokumen XML yang akan kita hasilkan akan berbentuk seperti ini

<?xml version='1.0'?>
<data>
   <book>
    .
    .
    .
   </book>
   <book>
    .
    .
    .
   </book>
    .
    .
</data>

Nama tag <book>…</book> ini nanti misalkan kita ambil dari nama tabelnya yaitu ‘book’. Sedangkan nama tag properti dari setiap buku, nantinya akan diambil dari nama field-fieldnya. Sehingga diharapkan nantinya struktur dokumen XML nya berbentuk seperti di bawah ini

<?xml version='1.0'?>
<data>
   <book>
      <id>...</id>
      <author>...</author>
      <title>...</title>
      <genre>...</genre>
      <price>...</price>
      <publish_date>...</publish_date>
      <description>...</description>
   </book>
   <book>
     <id>...</id>
      <author>...</author>
      <title>...</title>
      <genre>...</genre>
      <price>...</price>
      <publish_date>...</publish_date>
      <description>...</description>
   </book>
    .
    .
</data>

Nah.. dengan struktur di atas, bagaimana bentuk script PHP nya?

export2xml.php

<?php

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

$namaTabel = "book";

header('Content-Type: text/xml');

$query = "SELECT * FROM $namaTabel";
$hasil = mysql_query($query);
$jumField = mysql_num_fields($hasil);

echo "<?xml version='1.0'?>";
echo "<data>";
while ($data = mysql_fetch_array($hasil))
{
   echo "<".$namaTabel.">";
   for ($i=0; $i<=$jumField-1; $i++)
   {
      $namaField = mysql_field_name($hasil, $i);
      echo "<".$namaField.">".$data[$namaField]."</".$namaField.">";
   }
   echo "</".$namaTabel.">";
}
echo "</data>";
?>

Penjelasan:

Perintah header('Content-Type: text/xml'); digunakan untuk memberitahukan ke browser bahwa hasil output script adalah dalam format XML, bukan HTML.

Perintah mysql_num_fields() digunakan untuk menghitung jumlah field yang dihasilkan dari sebuah query SQL. Jumlah field ini nanti akan digunakan untuk looping ketika proses membuat tag properti dari setiap data buku.

Sedangkan perintah mysql_field_name() digunakan untuk membaca nama field pada urutan tertentu sesuai nomor indeksnya.

Perhatikan contoh penggunaan function mysql_field_name() berikut ini

<?php
$query = "SELECT * FROM book";
$hasil = mysql_query($query);

// akan memunculkan nama field pertama dari hasil query (field: ID)
echo mysql_field_name($hasil, 0); 

// akan memunculkan nama field kedua dari hasil query (field: AUTHOR)
echo mysql_field_name($hasil, 1);

// akan memunculkan nama field ketiga dari hasil query (field: TITLE)
echo mysql_field_name($hasil, 2);
?>

Dari contoh tersebut, maka mysql_field_name() dapat kita gunakan untuk mengenerate nama tag properti dari data buku yang kebetulan sama dengan nama fieldnya.

Hasil dari script export2xml.php di atas akan seperti di bawah ini:

Photobucket


Kata kunci: export mysql - export xml - script php -


 

Komentar Anda ...