<?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.Sumber : http://blog.rosihanari.net/export-data-dari-mysql-ke-xml-dengan-php
No comments:
Post a Comment