Skip to main content

Load and Insert XML data into MySQL with PHP simplexml function

Studi Kasus : Mengambil data dari XML dan menyimpannya ke dalam database (mysql)
Kebutuhan : Webserver Packages, already installed.
OKAY, no need for trivial chit-chat. Let’s just practice :D
Step 1 : Persiapkan Database


  1. Buat database dengan nama db_tutorial

  2. Siapkan tabel dengan nama tb_dataxml, dengan struktur tabel seperti gambar dibawah ini.

  3. Done!



Step 2 : Persiapkan Folder Kerja


  1. Buat folder dengan nama tutorphp dalam document root anda

  2. Simpan semua file dalam tutorial ini dalam folder tersebut.



Step 3 : Membuat script koneksi ke DB


  1. Ketikkan script berikut,







    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $host = "localhost";
    $user = "root"; //adjust according to your mysql setting
    $pass = ""; //adjust according to your mysql setting
    $dbName = "db_tutorial";
    mysql_connect($host, $user, $pass);
    mysql_select_db($dbName)
    or die ("Connect Failed !! : ".mysql_error());
    ?>



  2. simpan dengan nama connect.php



Step 4 : Menyiapkan data XML


  1. Ketikkan script berikut,







    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?xml version="1.0" encoding="iso-8859-1"?>
    <data>
    <record>
    <title>Time to Go</title>
    <author>June Sushan</author>
    <publisher>Gramedia Inc</publisher>
    <date>
    <month>June</month>
    <year>1989</year>
    </date>
    </record>

    <record>
    <title>Time to Come</title>
    <author>Alan Smart</author>
    <publisher>Elexmedia Inc</publisher>
    <date>
    <month>April</month>
    <year>1989</year>
    </date>
    </record>

    </data>



  2. simpan dengan nama record.xml



Step 5 : Membuat script untuk me-load XML, menyimpan ke database, dan menampilkan XML



  1. Ketikkan script berikut,







    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    include 'connect.php';
    if( !$xml = simplexml_load_file('record.xml') ) //using simplexml_load_file function to load xml file
    {
    echo 'load XML failed ! ';
    }
    else
    {
    echo '<h1>This is the Data</h1>';
    foreach( $xml as $record ) //parse the xml file into object
    {
    $title = $record->title; //get the childnode title
    $author = $record->author; //get the child node author
    $publisher = $record->publisher; //get the child node publisher
    $month = $record->date->month; //get the child node month
    $year = $record->date->year; //get the child node year

    echo 'Title : '.$title.'<br />';
    echo 'Author : '.$author.'<br />';
    echo 'Publisher : '.$publisher.'<br />';
    echo 'Month : '.$month.'<br />';
    echo 'Year : '.$year.'<br />';
    echo '<br>';

    //save to database
    $q = "INSERT INTO tb_dataxml VALUES('','$title','$author','$publisher','$month $year')";
    $result = mysql_query($q);
    }
    if ($result) {
    echo '<h2>Success Save to Database </h2>';
    }
    else echo '<h2>Failed Save to Databaase</h2>';
    }
    ?>



  2. simpan dengan nama loadxml.php



Step 6 : Testing Code


  1. Pergi ke http://localhost/tutorphp/loadxml.php. Anda akan melihat data dari record.xml telah diparsing dan ditampilkan seperti gambar dibawah :D

  2. Cek database anda, pastikan bahwa data dari XML telah tersimpan dalam tabel yang telah anda siapkan pada step 1



So, this is time to trivial chit-chat Ha Ha :D XML adalah extensible Markup Language.
Why XML? XML adalah format data standar (yang telah disepakati) yang digunakan dalam pertukaran data. Karena ke-global-an XML itulah, XML sering digunakan dalam komunikasi data karena formatnya yang platform independent :D
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
www.sisindotek.com , facebook.com/sisindotek , twitter.com/sisindotek

Comments

Popular posts from this blog

Awal Tragedi Tsunami di Tanjung Lesung Banten Desember 2018

Menjelang tutup tahun Bangsa INdonesia dikagetkan kembali oleh tragedi tsunami yang terjadi di tanjung lesung Banten, walapaun penyebab tsunami dan skala yang ditimbulkan masih lebih kecil ketimbang yang terjadi di Palu namun dikarenakan kejadian ini sangat mendadak serta menyebabkan jatuhnya korban termasuk di kalangan arti maka tragedi ini cukup menyita perhatian Dari keterangan pers yang dirilis oleh IMARINDO (Ikatan Manajer Artis Indonesia), tiga artis yang meninggal adalah Muhammad Awal Purbani alias Bani (bassist band Seventeen) danHeriyanto alias Aa Jimmy (personel grup musik parodi Jigo). Dua korban meninggal lain dari rombongan artis yang ikut ke sana adalah Oki Wijaya (road manager band Seventeen) dan Meyuza (istri Ade Dora, personel Jigo). Adapun korban yang masih dalam proses pencarian dan belum diketahui nasibnya adalah Herman Sikumbang (gitaris band Seventeen), Andi Windu Darmawan (drummer Seventeen) dan Ujang (kru Seventeen). Sebelumnya, beredar informasi bahwa Irfan, vo...

Android 11 resmi di launching google

RESMI Google hari ini 9 sept 2020 mengumumkan peluncuran Android 11  , versi terbaru dari sistem operasi selulernya. Setelah pratinjau publik yang sedikit lebih lama , pengguna yang memiliki sejumlah perangkat Pixel (dimulai dengan Pixel 2), ponsel OnePlus, Xiaomi, OPPO atau realme sekarang akan melihat pembaruan diluncurkan ke ponsel mereka dalam beberapa hari mendatang, dengan yang lain meluncurkan pembaruan mereka selama beberapa bulan ke depan. Android  11 bukanlah penyimpangan radikal dari apa yang Anda harapkan dalam beberapa tahun terakhir, tetapi ada sejumlah pembaruan menarik yang dihadapi pengguna baru di sini yang sebagian besar berpusat di sekitar perpesanan, privasi, dan memberi Anda kontrol yang lebih baik atas semua perangkat pintar Anda . Inti dari fitur perpesanan dan komunikasi yang ditingkatkan adalah pemberitahuan yang ditingkatkan untuk percakapan dari aplikasi perpesanan Anda. Ini sekarang tinggal di ruang khusus di bagian atas bayangan pemberitahuan dan menampilk...

Magento 2 , Using SMTP Gmail

Using SMTP GMAIL in Magento 2.1.0 Tidak seperti Magento Release 1.x dimana Admin bisa me-reset password customer secara manual maka  Ketika Anda menggunakan Magento release 2 anda akan menemukan masalah besar saat Anda membuat customer baru dikarenakan mekanisme di magento 2 tidak memungkinkan lagi buat Anda sebagai Admin untuk men-generate password secara manual. Mungkin ketika web magento 2 anda sudah go live tidak masalah karena sudah terhubung dengan mail server yang secara otomatis menggunakan  function php mail yang ada dimagento untuk menggunakan SMTP server host Anda, Namun jika Anda masih belajar dan masih menggunakan localhost maka tentu saja ini akan jadi masalah. di magento 2 memang tersedia konfigurasi untuk setting SMTP ( Stores -> Configuration -> Advanced -> System - Mail Sending Seeting) namun fitur ini tersedia dengan mode no authentication , kondisi ini tidak memungkinkan kalau Anda menggunakan SMTP Gmai...