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