Selamat datang di blog mari belajar coding. Pada tutorial kali ini kita akan belajar mengenai cara export database MySQL ke Ms. Excel menggunakan PHP. Export data dari database MySQL ke format Excel tidak memerlukan plugin atau library tambahan, cukup menambahkan header pada program PHP.
Export Database Mysql ke Excel dengan PHP
1. Buat database terlebih dahulu. Contoh yang kan kita gunakan yaitu database penjualan dengan satu tabel bernama tabel produk.
CREATE DATABASE `penjualan`;
USE `penjualan`;
CREATE TABLE `produk` (
`KodeProduk` varchar(25),
`NamaProduk` varchar(255),
`Satuan` varchar(255),
`Harga` int(11),
`Stok` int(11)
);
2. Insert data kedalam tabel penjualan.
INSERT INTO `produk` (`KodeProduk`, `NamaProduk`, `Satuan`, `Harga`, `Stok`) VALUES
('1', 'NEO RHEUMACYL 20 TABLET', 'Pcs', 25000, 63),
('2', 'BODREX TAB LAPIS DUA 20 TABLET', 'Pcs', 25000, 89),
('3', 'FLUCYL 4TAB', 'Pcs', 25000, 85),
('4', 'FLUCYL SIRUP 60 ML', 'Pcs', 25000, 94),
('5', 'OBB OBAT BATUK 60ML', 'Pcs', 25000, 100),
('6', 'VIDORAN SYRUP RS JERUK 225ML', 'Pcs', 25000, 90);
3. Buat fungsi koneksi database dengan PHP.
<?php
mysql_connect("localhost","root","");
mysql_select_db("penjualan");
?>
4. Buat tampilan data tabel produk dengan HTML dan PHP.
<table border="1">
<thead>
<tr>
<th>NO</th>
<th>Kode</th>
<th>Nama Produk</th>
<th>Satuan</th>
<th>Harga</th>
<th>Stok</th>
</tr>
</thead>
<tbody>
<?php
$no=1;
$sql=mysql_query("SELECT * FROM produk");
while ($data=mysql_fetch_array($sql)) {
?>
<tr>
<td><?=$no++;?></td>
<td><?=$data['KodeProduk'];?></td>
<td><?=$data['NamaProduk'];?></td>
<td><?=$data['Satuan'];?></td>
<td><?=$data['Harga'];?></td>
<td><?=$data['Stok'];?></td>
</tr>
<?php
}
?>
</tbody>
</table>
5. Kode lengkapnya seperti dibawah ini. Simpan dengan nama data.php
<!DOCTYPE html>
<html>
<head>
<title>maribelajarcoding.com</title>
<?php
mysql_connect("localhost","root","");
mysql_select_db("penjualan");
?>
</head>
<body>
<div align="center">
<h2>Export Database Mysql ke Excel dengan PHP</h2>
<a href="export-xls.php">Export xls</a> |
<a href="export-csv.php">Export csv</a>
<br><br>
<table border="1">
<thead>
<tr>
<th>NO</th>
<th>Kode</th>
<th>Nama Produk</th>
<th>Satuan</th>
<th>Harga</th>
<th>Stok</th>
</tr>
</thead>
<tbody>
<?php
$no=1;
$sql=mysql_query("SELECT * FROM produk");
while ($data=mysql_fetch_array($sql)) {
?>
<tr>
<td><?=$no++;?></td>
<td><?=$data['KodeProduk'];?></td>
<td><?=$data['NamaProduk'];?></td>
<td><?=$data['Satuan'];?></td>
<td><?=$data['Harga'];?></td>
<td><?=$data['Stok'];?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<h4><a href="https://maribelajarcoding.com" target="_blank">maribelajarcoding.com</a></h4>
</div>
</body>
</html>
6. Tampilan jika data.php dijalankan di browser.
7. Buat file bernama export-xls.php untuk export data dari database ke format excel xls.
7. Buat file bernama export-xls.php untuk export data dari database ke format excel xls.
<?php
//koneksi kedatabase
mysql_connect("localhost","root","");
mysql_select_db("penjualan");
// nama file
$filename="data produk-".date('Ymd').".xls";
//header info for browser
header("Content-Type: application/vnd-ms-excel");
header('Content-Disposition: attachment; filename="' . $filename . '";');
//menampilkan data sebagai array dari tabel produk
$out=array();
$sql=mysql_query("SELECT * FROM produk");
while($data=mysql_fetch_assoc($sql)) $out[]=$data;
$show_coloumn = false;
foreach($out as $record) {
if(!$show_coloumn) {
//menampilkan nama kolom di baris pertama
echo implode("\t", array_keys($record)) . "\n";
$show_coloumn = true;
}
// looping data dari database
echo implode("\t", array_values($record)) . "\n";
}
exit;
?>
8. Buat file bernama export-csv.php untuk export data dari database ke format excel csv.
<?php
//koneksi kedatabase
mysql_connect("localhost","root","");
mysql_select_db("penjualan");
// nama file
$filename="data produk-".date('Ymd').".csv";
//header info for browser
header("Content-Type:text/x-csv");
header('Content-Disposition: attachment; filename="' . $filename . '";');
//menampilkan data sebagai array dari tabel produk
$out=array();
$sql=mysql_query("SELECT * FROM produk");
while($data=mysql_fetch_assoc($sql)) $out[]=$data;
// create a file pointer connected to the output stream
$fh = fopen( 'php://output', 'w' );
$heading = false;
if(!empty($out))
foreach($out as $row) {
if(!$heading) {
//menampilkan nama kolom di baris pertama
fputcsv($fh, array_keys($row));
$heading = true;
}
// looping data dari database
fputcsv($fh, array_values($row));
}
fclose($fh);
?>