Membuat export data berdasarkan range tanggal menggunakan php

Membuat export data berdasarkan range tanggal menggunakan php

Pada kesempatan kali ini saya akan membahas tentang cara Membuat export data berdasarkan range tanggal menggunakan php. Export data adalah proses mengambil atau mendownload data dimana pada kesempatan kali ini proses export data berdasarkan range tanggal yang dipilih.

Langkah pertama untuk Membuat export data berdasarkan range tanggal menggunakan php yaitu teman-teman membuat database  seperti script di bawah ini.

CREATE TABLE `tbl_order` (

  `order_id` int(11) NOT NULL AUTO_INCREMENT,

  `order_customer_name` varchar(255) NOT NULL,

  `order_item` varchar(255) NOT NULL,

  `order_value` double(12,2) NOT NULL,

  `order_date` date NOT NULL,

  PRIMARY KEY (`order_id`)

) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;

Jika sudah maka siapkan data yang akan di eksport atau teman-teman bisa salin scriptnya di bawah.

insert  into `tbl_order`(`order_id`,`order_customer_name`,`order_item`,`order_value`,`order_date`) values

(1,'Shelli','Lego toys',1500.00,'2019-06-14'),

(2,'Shari','Nuk silicon teats',2000.00,'2019-06-08'),

(3,'Fatimah','Cross Pen',150.00,'2019-05-29'),

(4,'Eno','Lego Friends',350.00,'2019-05-30'),

(5,'Fahrul','Cross pen',100.00,'2019-06-01'),

(6,'Surya','HP Xiomi',800.00,'2019-06-02'),

(7,'Alfi','Nuk silicon teats',2000.00,'2019-05-28'),

(8,'Adi','Apple',200.00,'2019-06-04'),

(9,'Jaka','TV Samsung',500.00,'2019-05-27'),

(10,'Rifkie','HP Xiomi',1800.00,'2019-05-30')

Lalu dilanjutkan membuat script PHP untuk menampilkan data yang akan di eksport dan perintah eksport.

<?php

 

$connect = new PDO("mysql:host=localhost;dbname=shelli", "root", "");

$start_date_error = '';

$end_date_error = '';

if(isset($_POST["export"]))

{

if(empty($_POST["start_date"]))

 {

  $start_date_error = '<label class="text-danger">Start Date is required</label>';

 }

else if(empty($_POST["end_date"]))

 {

  $end_date_error = '<label class="text-danger">End Date is required</label>';

 }

else

 {

  $file_name = 'Order Data.csv';

header("Content-Description: File Transfer");

header("Content-Disposition: attachment; filename=$file_name");

header("Content-Type: application/csv;");

 

  $file = fopen('php://output', 'w');

 

  $header = array("Order ID", "Customer Name", "Item Name", "Order Value", "Order Date");

 

fputcsv($file, $header);

 

  $query = "

  SELECT * FROM tbl_order

  WHERE order_date>= '".$_POST["start_date"]."'

  AND order_date<= '".$_POST["end_date"]."'

  ORDER BY order_date DESC

  ";

  $statement = $connect->prepare($query);

  $statement->execute();

  $result = $statement->fetchAll();

foreach($result as $row)

  {

   $data = array();

   $data[] = $row["order_id"];

   $data[] = $row["order_customer_name"];

   $data[] = $row["order_item"];

   $data[] = $row["order_value"];

   $data[] = $row["order_date"];

fputcsv($file, $data);

  }

fclose($file);

exit;

 }

}

 

$query = "

SELECT * FROM tbl_order

ORDER BY order_date DESC;

";

 

$statement = $connect->prepare($query);

$statement->execute();

$result = $statement->fetchAll();

?>

Dan ini adalah struktur htmlnya seperti script di bawah.

<html>

<head>

<title>Membuat export data berdasarkan range tanggal menggunakan php</title>

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"/>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker.css"/>

<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.js"></script>

</head>

<body>

<div class="container box">

<h1 align="center">Membuat export data berdasarkan range tanggal menggunakan php</h1>

<div class="table-responsive">

<div class="row">

<form method="post">

<div class="input-daterange">

<div class="col-md-4">

<input type="text" name="start_date" class="form-control" readonly/>

<?php echo $start_date_error; ?>

</div>

<div class="col-md-4">

<input type="text" name="end_date" class="form-control" readonly/>

<?php echo $end_date_error; ?>

</div>

</div>

<div class="col-md-2">

<input type="submit" name="export" value="Export" class="btnbtn-info"/>

</div>

</form>

</div>

<table class="table table-bordered table-striped">

<thead>

<tr>

<th>Order ID</th>

<th>Customer Name</th>

<th>Item</th>

<th>Value</th>

<th>Order Date</th>

</tr>

</thead>

<tbody>

<?php

foreach($result as $row)

      {

echo '

<tr>

<td>'.$row["order_id"].'</td>

<td>'.$row["order_customer_name"].'</td>

<td>'.$row["order_item"].'</td>

<td>$'.$row["order_value"].'</td>

<td>'.$row["order_date"].'</td>

</tr>

       ';

      }

      ?>

</tbody>

</table>

</div>

</div>

</body>

</html>

 

<script>

 

$(document).ready(function(){

$('.input-daterange').datepicker({

todayBtn:'linked',

format:"yyyy-mm-dd",

autoclose:true

});

});

 

</script>

Jika sudah maka akan tampil seperti gambar di bawah ini.

maka hasil yang telah dieksport seperti gambar dibawah ini.

Demikian artikel tentang cara Membuat export data berdasarkan range tanggal menggunakan php. Semoga dapat bermanfaat dan selamat mencoba.

21 Juni 2019

Webinar Gratis 2024


Selanjutnya Pada Bulan Maret 2024

Sabtu, 09 Maret 2024


10 Bahasa Rekomendasi Untuk Dipelajari di 2024

Python Developer, Data Science, Web Application

Kursus Python Django Web Application 2024 di DUMET School Mini Bootcamp Backend Laravel 11 Bulan Mei 2024 di DUMET School
Webinar Selanjutnya Mei 2024

Minggu, 26 Mei 2024, 09.00-13.00 WIB

(4 Jam Membuat Backend di Laravel 11)

chat