xml insert into database |
kenapa cangkal melakukan ini? karena kita ketahui data RSS selalu update sehingga parsing XML hari kameren berbeda dengan data parsing hari ini.
nah data yang ingin kita simpan ke dalam database tetap sama fiednya yaitu title, link, pubDate dan description. cangkal pada tips ini menggunakan database MySql, ayo sob kita create table t_xml pada database coba. ini scriptnya
CREATE TABLE IF NOT EXISTS `t_xml` (
`id_xml` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
`link` varchar(200) NOT NULL,
`pubDate` datetime NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (`id_xml`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=325 ;
setelah konfigurasi database selesai, saatnya kita koding PHP menggunakan codeigniter, hal yang akan disiapkan pada CI seperti struktur berikut
- aplication
- config
- database.php
- controller
- Xml.php
- model
- Xml_model.php
kita ikuti konfigurasi satu demi satu struktur yang diatas, untuk konfigurasi database.php seperti dibawah ini
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'coba',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
kemudian kita ke bagian controller Xml.php, kita buat function insertdetik seperti list script di bawah ini
public function detikinsert ()
{
$feed_url="http://rss.detik.com/index.php/inet";
$content = file_get_contents($feed_url);
$x = new SimpleXmlElement(html_entity_decode($content));
$dataArr = array();
foreach($x->channel->item as $row){
$title = $row->title;
$link = $row->link;
$pubDate = date("Y-m-d H:i", strtotime($row->pubDate));
$description = $row->description;
$dataArr[] = "('$title', '$link', '$pubDate', '$description')";
}
// echo $pubDate;
$this->load->model('Xml_model');
$this->Xml_model->insert($dataArr);
$this->session->set_flashdata('message', 'Create Record Success');
redirect(site_url('xml/detik'));
}
setelah itu kita masuk ke bagian model Xml_model.php buat function insert seperti script ini, coding ini menggunakan implode agar dapat memisah data array $dataArr
yang berjumlah 10 row.
// insert data
function insert($dataArr)
{
$query_str = 'insert into t_xml (title,link, pubDate, description) values '.implode(',', $dataArr).'';
$query = $this->db->query($query_str);
}
ok sob, sekarang jalankan di url browser kamu http://localhost:808/enjoyit/index.php/xml/insertdetik ,kemudian cek data di database mysql menggunakan phpmyadmin. apakah data tersimpan seperti gambar di bawah ini sob? berarti sobat sudah berhasil melakukan tips ini
insert xml to database |
regards,
cangkal