Home > Mysql, PHP, Tips, Tutorial > Extract ZIP File Insert MYSQL From DBF File

Extract ZIP File Insert MYSQL From DBF File


Pada pembahasan sebelumnya mengenai Eksport DBF ke MYSQL dengan Menggunakan PHP sudah dijelaskan secara teknis untuk mengimport data dari DBF file. Pada tutorial kali ini pun tidak jauh berbeda seperti sebelumnya, perbedaannya adalah kita akan mulai dari mengekstrak file zip, kemudian kita mengambil file DBF tersebut hingga menghapus file DBF yang telah kita import ke MYSQL database kita.

/* Langkah Awal Kita Cek Apakah ada File ZIP di Folder Awal */
$dir = “C:/xampp/htdocs/zip/”;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (substr($file,-3)==’ZIP’){
$nmFile=$file;  (Jika Ekstension File adalah ZIP)
}
}
closedir($dh);
}
}

/* Langkah Kedua Ekstrak ZIP File ke Folder Tujuan */
$zip = new ZipArchive;
if ($zip->open($nmFile) === TRUE) {
$zip->extractTo(‘C:/xampp/htdocs/zip/ekstrak/’);
$zip->close();

/* Cek Apakah File DBF ada, Jika Ada Insert Ke Array Dahulu */
if (file_exists(“MSBANK.DBF”)) {
$sql=”;
$sql=array();
$insert=dbase_open(“MSBANK.DBF”,0);  /*Buka DBF File */
if ($insert){
echo “The file MSBANK.DBF exists<br>”;
$jum_record=dbase_numrecords($insert);
$nilai=0;
for ($ind=1;$ind<=$jum_record;$ind++){
$data=dbase_get_record($insert,$ind);
$sql[] = ‘(“‘.$data[0].'”,”‘.$data[1].'”,”‘.$data[2].'”,”‘.$data[3].'”,
“‘.$data[4].'”,”‘.$data[5].'”,”‘.$data[6].'”,”‘.$data[7].'”,”‘.$data[8].'”,”‘.$data[9].'”)’;
}
dbase_close($insert);
}
echo ‘Master Bank Rows ‘.$jum_record.'<br>’;
mysql_query(‘TRUNCATE TABLE `tempbank`’) or die (mysql_error());
$h=’INSERT INTO tempbank VALUES ‘.implode(‘,’, $sql) ;
mysql_query($h) or die (mysql_error());

/* Jika Data Sama Cek Perintah Update dengan Data Terbaru */
$sql=”;
$sql=array();
$ql=mysql_query(‘SELECT * FROM tempbank ORDER BY kodebank ASC’) or die (mysql_error());
while($rh=mysql_fetch_row($ql)){
$l=mysql_query(‘SELECT kodebank FROM bank WHERE kodebank=”‘.$rh[0].'”‘) or die (mysql_error());
$jj=mysql_num_rows($l);
if ($jj>0){
$update=’UPDATE bank SET
kodebank=”‘.$rh[0].'”,
namabank=”‘.$rh[1].'”,
digit=”‘.$rh[2].'”,
valid=”‘.$rh[3].'”,
createdate=”‘.$rh[4].'”,
createtime=”‘.$rh[5].'”,
createuser=”‘.$rh[6].'”,
lastupdate=”‘.$rh[7].'”,
lastupdatetime=”‘.$rh[8].'”,
lastupdateby=”‘.$rh[9].'”
WHERE kodebank =”‘.$rh[0].'”‘;
mysql_query($update) or die (mysql_error());
}else{
“‘.$rh[4].'”,”‘.$rh[5].'”,”‘.$rh[6].'”,”‘.$rh[7].'”,”‘.$rh[8].'”,”‘.$rh[9].'”)’;$sql[] = ‘(“‘.$rh[0].'”,”‘.$rh[1].'”,”‘.$rh[2].'”,”‘.$rh[3].'”,
}}

/* Jika Data Berbeda Insert Baru */
$h=’INSERT INTO bank VALUES ‘.implode(‘,’, $sql) ;
$jumArray = count($sql);
if ($jumArray>0){
mysql_query($h) or die (mysql_error());
}
} else {
echo “The file MSBANK.DBF does not exist”;
}
}else{
echo ‘Tidak Ada File ZIP yang diekstrak !’;
}

/* Hapus File DBF dan ZIP */
if (file_exists($nmFile)) {
unlink($nmFile);
}
if (file_exists(‘MSBANK.DBF’)) {
unlink(‘MSBANK.DBF’);
}

Script diatas sudah diujicoba di dapur sendiri🙂 alias berdasarkan kasus yang saya pernah kerjakan ketika harus mengimport data dari DBF File. Jika ada cara yang lebih baik silahkan sharing disini. Sampai saat ini saya masih mencari tau bagaimana ekstrak ZIP File yang terenkripsi password dimana passwordnya kita ketahui. Mungkin ada yang tahu boleh sharing disini juga. Terima Kasih.

Semoga Bermanfaat

  1. No comments yet.
  1. No trackbacks yet.

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

%d bloggers like this: