Minggu, 27 Mei 2012

Settingan Virtuemart Setelah di Upload Dari Localhost ke Hosting Server 2


Intinya ketika anda membuat website joomla yang menggunakan virtuemart dan menginstallnya di localhost. pasti settingan admin di virtuemart tersebut menggunakan settingan localhost atau http://127.0.0.1/namafolder. ketika di apload ke server hosting milik anda dan menggunakan nama domain anda, pasti dan sering terjadi error di admin virtuemartnya.  Nah, kali ini saya mo berbagi cara untuk mengatasi masalah tersebut.
Beberapa permasalahan yangmuncul pada website toko online Joomla yang menggunakan komponen VirtueMart adalah Bug yang terdapat pada konfigurasi VirtueMart admin yang tidak bisa secara otomatis melakukan perubahan pada sisi back end admin, hal ini dikarenakan oleh sistem konfigurasi VirtueMart membaca konfigurasi awal waktu kita melakukan editing di localhost server.
Perubahan sisi localhost sebelum upload ke server hosting
Sebenarnya hal ini bisa dihindari saat sebelum melakukan re-pack website kita kedalam arsip ZIP untuk di upload ke Hosting Server sesungguhnya, dengan cara melakukan perubahan pada sisi admin configuration Virtuemart yaitu:
1. masuk admin Joomla kemudian pilih menu Component dan pilih menu VirtueMart.
2. Klik Menu Bar ADMIN di halaman Back end Virtuemart anda, dan pilih Configuration —> Security.
3. Lihat field Site URL dan SECUREURL . Jika masih http://localhost/namatokoanda/ segera GANTI dengan domain site yang sudah anda miliki di hosting server baru tersebut, contoh:http://namadomain-anda.com/ begitu pula pada SECUREURL nya harus disamakan dengan domain yang anda tulis di Site URL. Catatan: anda bisa saja menggunakan https:// pada secureurl field selama Anda TELAH MEMILIKI CERTIFICATE SSL . Jika belum memiliki atau memang tidak mau membeli, jangan gunakan HTTPS karena akan menyebabkan website anda mengalami permasalahan pada beberapa halaman security seperti Login Page hingga halaman prosesi pembayaran.
4. Jika sudah di set sesuai parameter yang baru, simpan dan anda sudah boleh keluar dari admin joomla site anda.
5. Masuk windows explorer, dan blok semua folder joomla site anda kemudian arsipkan kedalam format ZIP, atau Tar.GZ atau GZIP. setelah itu baru Upload Ke hosting server anda.
6. Setelah berhasil melakukan upload dan melakukan extract pada file zip joomla anda di file manager control panel hosting anda, selanjutnya anda cukup melakukan perubahan pada configuration.php di root situs joomla anda.
7. Jika semua sudah terinstalasi dengan benar, periksa website anda dengan cara memanggil domain website anda yang baru di URL address bar browser anda, apakah sudah bisa berjalan atau tidak. termasuk explorasi ke kategori-kategori produk dan coba lakukan pembelian. Jika berjalan normal berarti setingan anda sudah benar, jika belum coba periksa kembali segala sesuatunya yang berhubungan seting PATH (jalur file) di hosting server anda.
=============================================================================
Perubahan Konfigurasi Pasca Website Publish secara ONLINE.
Jika ternyata dalam kondisi tertentu anda lupa melakukan konfigurasi sebelum di upload ke hosting server, dan ternyata website anda mengalami masalah berkenaan dengan kesalahan url yang masih melekat pada url localhost, maka anda TIDAK PERLU KHAWATIR dan PANIK. Ada cara untuk melakukan perubahan settingan yang dapat dilakukan didalam control panel hosting anda. Diantaranya sebagai berikut:
1. Jika ternyata website anda mengalami masalah pada saat menu produk atau kategori produk di klik hingga menyebabkan template menjadi blank dan tidak bisa masuk ke URL yang sebenarnya sesuai dengan Nama Domain anda yang baru. Coba MASUK ke CONTROL PANEL hosting anda.
Caranya: ketik http://nama-domain-anda.tld/cpanel . jangan lupa untuk mengisi username dan password control panel hosting anda.
2. Jika sudah masuk ke CPanel anda, cari menu FILE MANAGER dibagian group menu  FILES dan klik menu tersebut, untuk kemudian anda akan di bawa ke dalam halaman file manager.
3. Berikutnya, yg harus anda lakukan adalah, memilih directori PUBLIC_HTML dimana disitulah root joomla site anda berada. selanjutnya pilih direktori ADMINISTRATOR –> COMPONENTS –> COM_VIRTUEMART –> kemudian edit file yang bernama virtuemart.cfg.php . Untuk detil path nya adalah sebagai berikut: /public_html/administrator/components/com_virtuemart/virtuemart.cfg.php.
4. Jika anda sudah masuk pada halaman editor FIle Manager CPANEL. lakukan beberapa perubahan sebagai berikut ini :
Cari:
Code: [Select]
// these path and url definitions here are based on the Joomla! Configuration
define( 'URL', 'http://localhost/tokoanda/' );
define( 'SECUREURL', 'http://localhost/tokoanda/' );

Detil isinya:
Code: [Select]
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
* The configuration file for VirtueMart
*
* @package VirtueMart
* @subpackage core
* @copyright Copyright (C) 2004-2008 soeren - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details.
*
* http://virtuemart.net
*/

global $mosConfig_absolute_path,$mosConfig_live_site;
if( !class_exists( 'jconfig' )) {
$global_lang = $GLOBALS['mosConfig_lang'];
@include( dirname( __FILE__ ).'/../../../configuration.php' );
$GLOBALS['mosConfig_lang'] = $mosConfig_lang = $global_lang;
}
// Check for trailing slash
if( $mosConfig_live_site[strlen( $mosConfig_live_site)-1] == '/' ) {
$app = '';
}
else {
$app = '/';
}
================ LIHAT DIBAWAH INI ==============================
// these path and url definitions here are based on the Joomla! Configuration
define( 'URL', 'http://localhost/tokoanda/' );
define( 'SECUREURL', 'http://localhost/tokoanda/' );
==============================================================
dan seterusnya (script tag berikut tidak disertakan)

Kemudian Ganti parameter url localhost tersebut dengan nama domain anda:
Code: [Select]
// these path and url definitions here are based on the Joomla! Configuration
define( 'URL', 'http://www.nama-domain-anda.tld/' );
define( 'SECUREURL', 'http://www.nama-domain-anda.tld/' );

dimana : www.nama-domain-anda.tld adalah domain anda yang baru (sesuaikan dengan nama domain anda sendiri, jangan menggunakan contoh ini, bisa bubar webnya  :p )
CATATAN PENTING: untuk penggunaan WWW jika hosting anda tidak support Rewrite engine (mod_rewrite) maka anda tidak bisa menambahkan begitu saja www. di url tersebut. Jika hosting anda support anda bisa menambahkannya pada .htaccess file anda di root joomla anda.
5. Setelah anda melakukan perubahan pada file tersebut di file manager cpanel anda, jangan lupa SIMPAN/SAVE file tersebut.
6. Buka browser baru, dan ketikkan url anda: domain-anda.tld . lakukan beberapa eksplorasi di sisi frontend untuk memastikan semua fungsi shopping cart anda berjalan sempurna.
7. Lakukan hal yang sama pada backend website joomla-virtuemart anda. Masuk ke Administrator, kemudian pilih Component Virtuemart, apakah masih diarahkan ke http://localhost/tokoanda ataukah sudah bisa masuk kedalam konfigurasi VirtueMart backend anda.
Jika kondisi yang kedua terjadi, berarti anda sudah sukses melakukan perubahan/perbaikan pada sisi konfigurasi Virtuemart anda. Selanjutnya lakukan perubahan pada penambahan kategori produk, dll hingga semuanya dirasa tidak bermasalah.

Setting Virtuemart Setelah di upload dari localhost ke Server hosting

Proses upload web dari komputer lokal ke server hosting ( share ) memang terkadang menjadi kendala pada web master yang membuat web toko online dari open source web joomla dengan penambahan komponen toko onlinenya yaitu virtuemart.
Kendala yang terjadi setelah login ke halaman administrator di mana untuk menambahkan cart atau katalog produk di virtuemart yang menyebabkan setelah akses ke bagian tersebut halaman anda mengarah ke url localhost sehingga terjadi blank atau halaman yang tidak sesuai dengan harapan. Untuk hal ini perubahan settingan yang dapat dilakukan didalam control panel hosting anda sebagai berikut:
1. Website anda mengalami masalah pada saat menu produk atau kategori produk di klik hingga menyebabkan template menjadi blank dan tidak bisa masuk ke URL yang sebenarnya sesuai dengan Nama Domain anda yang baru. Coba MASUK ke CONTROL PANEL hosting anda.
Caranya: ketik http://nama-domain-anda.tld/cpanel . jangan lupa untuk mengisi username dan password control panel hosting anda.
2. Jika sudah masuk ke cPanel, cari menu FILE MANAGER dan klik menu tersebut, untuk kemudian anda akan di bawa ke dalam halaman file manager.
3. Selanjutnya memilih direktori PUBLIC_HTML dimana root joomla site anda di simpan. Setelah itu pilih direktori ADMINISTRATOR –> COMPONENTS –> COM_VIRTUEMART –> kemudian edit file yang bernama virtuemart.cfg.php . Untuk detil path nya adalah sebagai berikut: /public_html/administrator/components/com_virtuemart/virtuemart.cfg.php.
4. Jika anda sudah masuk pada halaman editor FIle Manager CPANEL. lakukan beberapa perubahan sebagai berikut ini :
Cari:
Code:
// these path and url definitions here are based on the Joomla! Configuration
define( 'URL', 'http://localhost/tokoanda/' );
define( 'SECUREURL', 'http://localhost/tokoanda/' );
Detil isinya:
Code:
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
* The configuration file for VirtueMart
*
* @package VirtueMart
* @subpackage core
* @copyright Copyright (C) 2004-2008 soeren - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details.
*
* http://virtuemart.net
*/
global $mosConfig_absolute_path,$mosConfig_live_site;
if( !class_exists( ’jconfig’ )) {
$global_lang = $GLOBALS['mosConfig_lang'];

@include( dirname( __FILE__ ).’/../../../configuration.php’ );
$GLOBALS['mosConfig_lang'] = $mosConfig_lang = $global_lang;
}
// Check for trailing slash
if( $mosConfig_live_site[strlen( $mosConfig_live_site)-1] == ’/' ) {
$app = ”;
}
else {
$app = ’/';
}
================ LIHAT DIBAWAH INI ==============================
// these path and url definitions here are based on the Joomla! Configuration
define( ’URL’, ’http://localhost/tokoanda/’ );
define( ’SECUREURL’, ’http://localhost/tokoanda/’ );
==============================================================
dan seterusnya (script tag berikut tidak disertakan)
Kemudian Ganti parameter url localhost tersebut dengan nama domain anda:
Code:
// these path and url definitions here are based on the Joomla! Configuration
define( 'URL', 'http://www.nama-domain-anda.tld/' );
define( 'SECUREURL', 'http://www.nama-domain-anda.tld/' );
Ket : sumber ini di dapat dari bermacam – macam informasi online seperti forum, blog dan google

Jumat, 11 Mei 2012

Script PHP untuk Membuat Report Format MS. Excel

Satu lagi tutorial persembahan dari blog.rosihanari.net yang mudah-mudahan berguna bagi para web programmer. Tutorial ini adalah bagaimana membuat script PHP untuk menghasilkan file report dalam format MS. Excel.
Apa menariknya report dalam format MS. Excel? dengan report berformat MS. Excel memungkinkan untuk dilakukan pengolahan lagi pada data report tersebut. Sebagai contoh, report tentang data nilai mahasiswa dan status kelulusannya pada matakuliah tertentu. Apabila report yang dihasilkan berupa MS. Excel, maka memungkinkan untuk pengolahan lebih lanjut terhadap report tersebut menggunakan perintah-perintah dalam MS. Excel, seperti menghitung jumlah mahasiswa yang lulus maupun tidak lulus, bahkan dalam bentuk prosentasenya.

Nah… kita akan coba membuat script PHP untuk menghasilkan report dalam format MS. Excel ini, dengan mengambil studi kasus lagi-lagi tentang nilai matakuliah mahasiswa. Report yang akan dihasilkan berupa daftar mahasiswa (NIM dan Nama) yang mengambil matakuliah, nilai yang diperoleh, serta status kelulusannya (LULUS/TIDAK LULUS). Untuk menentukan kelulusan, misalnya diambil policy jika nilainya 60 ke atas maka LULUS, jika kurang dari 60 maka TIDAK LULUS. Untuk data mentah dari report ini diambil dari database MySQL.
OK… terlebih dahulu kita siapkan tabel dan recordnya.
1.CREATE TABLE nilaimhs(
2.nim varchar(10),
3.namaMhs varchar(30),
4.nilai int(11),
5.PRIMARY KEY(nim)
6.)
1.INSERT INTO nilaimhs VALUES
2.('M0197001', 'Faza Fauzan Kh.', 80),
3.('M0197002', 'Dwi Amalia Fitriani', 75),
4.('M0197003', 'Rosihan Ari Yuana', 45),
5.('M0197004', 'Nada Hasanah', 83),
6.('M0197005', 'Muh. Ahsani Taqwim', 90);
Setelah tabel dan record sudah siap, let’s write a PHP script. Ini dia scriptnya…
001.
002. 
003.// nama file
004. 
005.$namaFile = "report.xls";
006. 
007.// Function penanda awal file (Begin Of File) Excel
008. 
009.function xlsBOF() {
010.echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
011.return;
012.}
013. 
014.// Function penanda akhir file (End Of File) Excel
015. 
016.function xlsEOF() {
017.echo pack("ss", 0x0A, 0x00);
018.return;
019.}
020. 
021.// Function untuk menulis data (angka) ke cell excel
022. 
023.function xlsWriteNumber($Row, $Col, $Value) {
024.echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
025.echo pack("d", $Value);
026.return;
027.}
028. 
029.// Function untuk menulis data (text) ke cell excel
030. 
031.function xlsWriteLabel($Row, $Col, $Value ) {
032.$L = strlen($Value);
033.echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
034.echo $Value;
035.return;
036.}
037. 
038.// header file excel
039. 
040.header("Pragma: public");
041.header("Expires: 0");
042.header("Cache-Control: must-revalidate, post-check=0,
043.pre-check=0");
044.header("Content-Type: application/force-download");
045.header("Content-Type: application/octet-stream");
046.header("Content-Type: application/download");
047. 
048.// header untuk nama file
049.header("Content-Disposition: attachment;
050.filename=".$namaFile."");
051. 
052.header("Content-Transfer-Encoding: binary ");
053. 
054.// memanggil function penanda awal file excel
055.xlsBOF();
056. 
057.// ------ membuat kolom pada excel --- //
058. 
059.// mengisi pada cell A1 (baris ke-0, kolom ke-0)
060.xlsWriteLabel(0,0,"NO");              
061. 
062.// mengisi pada cell A2 (baris ke-0, kolom ke-1)
063.xlsWriteLabel(0,1,"NIM");             
064. 
065.// mengisi pada cell A3 (baris ke-0, kolom ke-2)
066.xlsWriteLabel(0,2,"NAMA MAHASISWA");
067. 
068.// mengisi pada cell A4 (baris ke-0, kolom ke-3)
069.xlsWriteLabel(0,3,"NILAI");  
070. 
071.// mengisi pada cell A5 (baris ke-0, kolom ke-4)
072.xlsWriteLabel(0,4,"STATUS KELULUSAN");
073. 
074.// -------- menampilkan data --------- //
075. 
076.// koneksi ke mysql
077. 
078.mysql_connect("localhost", "root", "root");
079.mysql_select_db("data");
080. 
081.// query menampilkan semua data
082. 
083.$query = "SELECT * FROM nilaimhs";
084.$hasil = mysql_query($query);
085. 
086.// nilai awal untuk baris cell
087.$noBarisCell = 1;
088. 
089.// nilai awal untuk nomor urut data
090.$noData = 1;
091. 
092.while ($data = mysql_fetch_array($hasil))
093.{
094.// menampilkan no. urut data
095.xlsWriteNumber($noBarisCell,0,$noData);
096. 
097.// menampilkan data nim
098.xlsWriteLabel($noBarisCell,1,$data['nim']);
099. 
100.// menampilkan data nama mahasiswa
101.xlsWriteLabel($noBarisCell,2,$data['namaMhs']);
102. 
103.// menampilkan data nilai
104.xlsWriteNumber($noBarisCell,3,$data['nilai']);
105. 
106.// menentukan status kelulusan
107.if ($data['nilai'] >= 60) $status = "LULUS";
108.else $status = "TIDAK LULUS";
109. 
110.// menampilkan status kelulusan
111.xlsWriteLabel($noBarisCell,4,$status);
112. 
113.// increment untuk no. baris cell dan no. urut data
114.$noBarisCell++;
115.$noData++;
116.}
117. 
118.// memanggil function penanda akhir file excel
119.xlsEOF();
120.exit();
121. 
122.?>
Apabila script di atas dijalankan pada browser, maka browser akan menampilkan kotak dialog untuk mendownload file MS. Excel sebagai outputnya. Gambar berikut ini adalah screen shot isi file excel yang telah didownload.

Mudah bukan cara membuatnya?

Membuat Script PHP Untuk Report atau Rekap Data (2)

Beberapa waktu yang lalu saya pernah nulis artikel tentang cara buat script untuk rekap data untuk kasus yang agak simple. Nah… kali ini saya akan mencoba menulis kembali untuk masalah yang sama, namun dengan kasus yang agak sedikit kompleks.

Perhatikan studi kasus berikut ini, misalkan kita punya data karyawan yang tersimpan dalam 3 buah tabel yaitu ‘karyawan’, ‘golongan’ dan ‘bidang’ sebagaimana tampak pada gambar berikut ini
Tabel: Bidang
Script Rekap Data PHP
Tabel: Golongan
TableGolong
Tabel: Karyawan
TableKaryawan
Yang jadi permasalahan adalah, bagaimana cara kita membuat script PHP untuk menghasilkan output seperti di bawah ini?
tabel
OK sebelum kita mulai membuat scriptnya, terlebih dahulu kita harus punya ide pembuatannya dulu. Apabila kita perhatikan bahwa setiap baris data pada tabel output menunjukkan informasi mengenai jumlah total pegawai, jumlah pegawai pada masing-masing golongan untuk setiap bidangnya. Maka nanti idenya adalah, kita baca semua bidang yang ada dahulu, kemudian untuk setiap bidangnya kita cari jumlah data masing-masing item nya (total pegawai dan jumlah karyawan berdasarkan golongan). Sambil mencari jumlah masing-masing item untuk setiap bidang, jangan lupa kita jumlahkan jumlah masing-masing itemnya untuk mencari total item di akhir tabel.
Berdasarkan ide tersebut, kita buat script PHP sbb:
01.
02./*
03.perintah koneksi ke db ditulis di sini
04.*/
05. 
06.// membuat awal dan header tabel
07.echo "";
08.echo "
";  
09. 
10.// nilai awal untuk nomor urut data
11.$no = 1;
12. 
13.// nilai awal jumlah total karyawan
14.$totalKaryawan = 0;
15. 
16.// nilai awal jumlah karyawan gol 1
17.$totalGol1 = 0;
18. 
19.// nilai awal jumlah karyawan gol 2
20.$totalGol2 = 0;
21. 
22.// nilai awal jumlah karyawan gol 3
23.$totalGol3 = 0;
24. 
25.// membaca semua data bidang
26.$query = "SELECT * FROM bidang";
27.$hasil = mysql_query($query);
28.while ($data = mysql_fetch_array($hasil))
29.{
30.// baca kode bidang
31.$kodeBidang = $data['kd_bidang'];
32. 
33.// baca nama bidang
34.$namaBidang = $data['nama_bidang'];
35. 
36.// cari jumlah karyawan untuk setiap kode bidang
37.$query2 = "SELECT count(*) as jum FROM karyawan WHERE kd_bidang = '$kodeBidang'";
38.$hasil2 = mysql_query($query2);
39.$data2 = mysql_fetch_array($hasil2);
40.$jumlah = $data2['jum'];
41. 
42.// menjumlahkan setiap jumlah karyawan setiap bidang
43.// untuk menghitung total seluruh karyawan
44.$totalKaryawan += $jumlah;
45. 
46.// cari jumlah karyawan untuk setiap kode bidang bergolongan 1
47.$query2 = "SELECT count(*) as jum1 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 1";
48.$hasil2 = mysql_query($query2);
49.$data2 = mysql_fetch_array($hasil2);
50.$jumGol1 = $data2['jum1'];
51. 
52.// menjumlahkan setiap jumlah karyawan gol 1 di setiap bidang
53.// untuk menghitung total seluruh karyawan bergolongan 1
54.$totalGol1 += $jumGol1;
55. 
56.// cari jumlah karyawan untuk setiap kode bidang bergolongan 2
57.$query2 = "SELECT count(*) as jum2 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 2";
58.$hasil2 = mysql_query($query2);
59.$data2 = mysql_fetch_array($hasil2);
60.$jumGol2 = $data2['jum2'];
61. 
62.// menjumlahkan setiap jumlah karyawan gol 2 di setiap bidang
63.// untuk menghitung total seluruh karyawan bergolongan 2
64.$totalGol2 += $jumGol2;
65. 
66.// cari jumlah karyawan untuk setiap kode bidang bergolongan 3
67.$query2 = "SELECT count(*) as jum3 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 3";
68.$hasil2 = mysql_query($query2);
69.$data2 = mysql_fetch_array($hasil2);
70.$jumGol3 = $data2['jum3'];
71. 
72.// menjumlahkan setiap jumlah karyawan gol 3 di setiap bidang
73.// untuk menghitung total seluruh karyawan bergolongan 3
74.$totalGol3 += $jumGol3;
75. 
76.// tampilkan baris datanya untuk setiap bidang
77.echo "
";
78. 
79.// increment untuk nomor urut data
80.$no++;
81.}
82. 
83.// membuat baris untuk total data
84.echo "
";
85. 
86.// membuat akhir dari tabel
87.echo "
NoBidangJum KaryawanGol. SatuGol. DuaGol. Tiga
".$no."".$namaBidang."".$jumlah."".$jumGol1."".$jumGol2."".$jumGol3."
Jumlah".$totalKaryawan."".$totalGol1."".$totalGol2."".$totalGol3."
";
88. 
89.?>
What do u think? ternyata tidak sulit bukan membuat report atau rekap data dengan PHP. Selamat mencoba ya. Oya, script di atas, belum saya coba jalankan sendiri di browser melainkan menulis kodenya langsung di WordPress, so.. kalo ada error mohon maklum. Tolong koreksi script di atas ya, siapa tahu ada error atau bug nya :-)

Membuat Script PHP Import Data MS. Excel Ke MySQL

Sebenarnya topik tentang cara membuat script import data excel ke mysql sudah banyak ditanyakan rekans pengunjung setia blog ini. Namun… maaf baru sempat kali ini membuat artikelnya :-)
Mengapa script import data Excel ke MySQL ini perlu dibuat? ya.. karena tool-tool seperti phpMyAdmin belum mendukungnya. Kalau tidak salah phpMyAdmin hanya mendukung import data dalam bentuk format SQL maupun CSV. Sebenarnya ada sih tool yang mendukung import data dalam format Excel, seperti Navicat dan SQLyog. Namun keduanya adalah tool berbayar :-(

Nah… untuk membuat script import data Excel ke MySQL ini nanti kita akan memanfaatkan class PHPExcelReader yang dibuat oleh Vadim Tkachenko. Class ini sebenarnya hanya diperuntukkan untuk membaca file Excel saja, namun dengan sedikit modifikasi dan pengembangan dapat kita gunakan untuk melakukan import data Excel ke MySQL.
Oya… file Excel yang bisa dibaca oleh class PHPExcelReader ini untuk sementara hanya yang di bawah MS. Office 2007 atau Office 97-2003 saja. Dengan kata lain class ini tidak bisa digunakan untuk membaca file Excel yang berekstensi (*.xlsx). Oleh karena itu pastikan file Excel yang akan Anda import berekstensi *.xls.
Sebelum kita membuat script import datanya, silakan download terlebih dahulu class PHPExcelReader nya di bawah ini
Download Class
Selanjutnya, kita akan membuat script import datanya. Dalam script yang akan kita buat ini, class tersebut nantinya akan kita includekan di dalamnya.
Untuk contoh kasus yang akan kita pilih di sini adalah import data mahasiswa. Berikut ini struktur tabel MySQL nya.
1.CREATE TABLE `mhs` (
2.`nim` varchar(10),
3.`namamhs` varchar(30),
4.`alamat` text,
5.PRIMARY KEY  (`nim`)
6.)
Kemudian andaikan kita memiliki file data Excel seperti gambar di bawah ini
Script PHP Import Excel ke MySQL
Dalam proses import data nanti, kita akan menggunakan bentuk form upload file. Oleh karena itu, pertama kita buat form uploadnya sbb:
import.php
1.<h1>Import Data Asramah1>
2. 
3.<form method="post" enctype="multipart/form-data" action="proses.php">
4.Silakan Pilih File Excel: <input name="userfile" type="file">
5.<input name="upload" type="submit" value="Import">
6.form>
Selanjutnya, kita buat script untuk proses upload dan import datanya. Oya… meskipun kita menggunakan form upload file, namun file Excel yang kita upload tersebut tidak akan tersimpan di server secara permanen namun hanya bersifat temporary yang otomatis akan terhapus setelah proses import datanya selesai.
proses.php

01.
02.// menggunakan class phpExcelReader
03.include "excel_reader2.php";
04. 
05.// koneksi ke mysql
06.mysql_connect("dbHost", "dbUser", "dbPass");
07.mysql_select_db("dbname");
08. 
09.// membaca file excel yang diupload
10.$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
11. 
12.// membaca jumlah baris dari data excel
13.$baris = $data->rowcount($sheet_index=0);
14. 
15.// nilai awal counter untuk jumlah data yang sukses dan yang gagal diimport
16.$sukses = 0;
17.$gagal = 0;
18. 
19.// import data excel mulai baris ke-2 (karena baris pertama adalah nama kolom)
20.for ($i=2; $i<=$baris; $i++)
21.{
22.// membaca data nim (kolom ke-1)
23.$nim = $data->val($i, 1);
24.// membaca data nama (kolom ke-2)
25.$nama = $data->val($i, 2);
26.// membaca data alamat (kolom ke-3)
27.$alamat = $data->val($i, 3);
28. 
29.// setelah data dibaca, sisipkan ke dalam tabel mhs
30.$query = "INSERT INTO mhs VALUES ('$nim', '$nama', '$alamat')";
31.$hasil = mysql_query($query);
32. 
33.// jika proses insert data sukses, maka counter $sukses bertambah
34.// jika gagal, maka counter $gagal yang bertambah
35.if ($hasil) $sukses++;
36.else $gagal++;
37.}
38. 
39.// tampilan status sukses dan gagal
40.echo "

Proses import data selesai.

";
41.echo "Jumlah data yang sukses diimport : ".$sukses."
"
;
42.echo "Jumlah data yang gagal diimport : ".$gagal."
"
;
43. 
44.?>
Setelah script di atas dijalankan, maka berikut ini isi tabel mhs setelah proses import datanya
Script PHP Import Excel ke MySQL
Nah.. mudah bukan?? Oya.. pastikan class phpExcelReader tersebut terletak dalam folder yang sama dengan kedua script di atas.
Dalam membuat file Excel, Anda tetap bisa menggunakan Office 2007 asal ketika menyimpan filenya, pastikan formatnya adalah Excel 97-2003 worksheet (pilih Save As Type: Excel 97-2003 Worksheet).
Semoga artikel ini bermanfaat…