SISINDOTEK

I.T Solution | I.T Training | I.T Integration System

Export Data Dari MySQL ke XML dengan PHP

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
view sourceprint?

01.<?xml version='1.0'?>
02.<data>
03.<book>
04..
05..
06..
07.</book>
08.<book>
09..
10..
11..
12.</book>
13..
14..
15.</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
view sourceprint?

01.<?xml version='1.0'?>
02.<data>
03.<book>
04.<id>...</id>
05.<author>...</author>
06.<title>...</title>
07.<genre>...</genre>
08.<price>...</price>
09.<publish_date>...</publish_date>
10.<description>...</description>
11.</book>
12.<book>
13.<id>...</id>
14.<author>...</author>
15.<title>...</title>
16.<genre>...</genre>
17.<price>...</price>
18.<publish_date>...</publish_date>
19.<description>...</description>
20.</book>
21..
22..
23.</data>

Nah.. dengan struktur di atas, bagaimana bentuk script PHP nya?
export2xml.php
view sourceprint?

01.<?php
02.
03.mysql_connect("dbhost", "dbuser", "dbpass");
04.mysql_select_db("dbname");
05.
06.$namaTabel = "book";
07.
08.header('Content-Type: text/xml');
09.
10.$query = "SELECT * FROM $namaTabel";
11.$hasil = mysql_query($query);
12.$jumField = mysql_num_fields($hasil);
13.
14.echo "<?xml version='1.0'?>";
15.echo "<data>";
16.while ($data = mysql_fetch_array($hasil))
17.{
18.echo "<".$namaTabel.">";
19.for ($i=0; $i<=$jumField-1; $i++)
20.{
21.$namaField = mysql_field_name($hasil, $i);
22.echo "<".$namaField.">".$data[$namaField]."</".$namaField.">";
23.}
24.echo "</".$namaTabel.">";
25.}
26.echo "</data>";
27.?>

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
view sourceprint?

01.<?php
02.$query = "SELECT * FROM book";
03.$hasil = mysql_query($query);
04.
05.// akan memunculkan nama field pertama dari hasil query (field: ID)
06.echo mysql_field_name($hasil, 0);
07.
08.// akan memunculkan nama field kedua dari hasil query (field: AUTHOR)
09.echo mysql_field_name($hasil, 1);
10.
11.// akan memunculkan nama field ketiga dari hasil query (field: TITLE)
12.echo mysql_field_name($hasil, 2);
13.?>

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

sumber : http://blog.rosihanari.net/export-data-dari-mysql-ke-xml-dengan-php

Cari I.T Training ?

SISINDOTEK – I.T Training & Solution Provider
Jl. Sukasenang VI – 6 B Cikutra Bandung
Jawa Barat 40124
Tel. 022-71242266, 0812.8733.1966
Email : info@sisindotek.com , YM. sisindotek
http://www.sisindotek.com , facebook.com/sisindotek , twitter.com/sisindotek

About these ads

Single Post Navigation

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 41 other followers

%d bloggers like this: