Menampilkan data hari ini php

Kali ini kita akan belajar untuk menampilkan laporan atau data dari database berdasarkan tanggal di PHP. Fungsi seperti ini pasti akan sangat dibutuhkan, dibeberapa web yang saya buat juga membutuhkan fitur ini misalnya kita ingin menampilkan data mahasiswa yang memiliki tanggal lahir pada range tertentu, atau menampilkan laporan transaksi pada website ecommerce untuk setiap transaksi pada tanggal tertentu. Dengan fitur ini kita dapat menfilter data yang sesuai dengan range tanggal yang diinginkan.

Jika kita belajar perintah-perintah query SQL, maka tentu kita sudah tidak asing lagi dengan klausa WHERE dengan ini kita dapat menfilter baris hasil data, dimana hanya record yang memenuhi kondisi tertentu yang hanya akan ditampilkan. Selain itu ada juga pernyataan BETWEEN dimana kita menentukan suatu range nilai tertentu bisa berupa angka, teks ataupun tanggal untuk dapat ditampilkan.

Pada tutorial kali ini kita akan mengimplementasikan kedua pernyataan SQL tersebut untuk menampilkan lapran/data berdasarkan tanggal dengan menggunakan bahasa pemrograman PHP native.

Konfigurasi Database

Pada contoh kali ini, saya masih menggunakan data mahasiswa ya, karena salah satu field (kolom) terdapat kolom tanggal lahir, nantinya kita akan membuat sistem pencarian data mahasisa berdasarkan kolom tanggal lahir yang di filter melalui dua buah datepicker, untuk menentukan range tanggal lahir yang ingin ditampilkan.

Struktur Tabel Mahasiswa

Menampilkan data hari ini php

Gambar diatas adalah struktur tabel yang dibuat. Terdapat 5 kolom, salah satunya adalah tanggal_lhr disini kita menggunakan tipe DATE dengan format default yang digunakan ‘yyyy-mm-dd’

Membuat Database

Buat dulu sebuah database, saya membuat database dengan nama akademik

CREATE DATABASE akademik;

Lalu gunakan perintah USE DATABASE akademik; untuk memilih menggunakan database akademik.

create table mahasiswa (
    nim char(10) not null primary key,
    nama varchar(50) not null,
    jenis_kelamin int,
    tanggal_lhr date,
    jurusan char(2)
    );

Selanjutnya buat perintah query CREATE TABLE untuk membuat tabel mahasiswa.

INSERT INTO mahasiswa
VALUES ('135410156','Ahmad Riko',1,'1995-02-23','TI'),
('135610157','Dahlan Iskan',1,'1998-03-26','SI'),
('135410189','Wawan Setiawan',1,'1993-02-13','TI'),
('135310156','Safitri Ayu',2,'1995-09-01','TK'),
('135310150','Rian Hidayat',1,'1997-08-05','TK'),
('135510920','Dani Hermawan',1,'1996-05-05','SI'),
('135518322','Nita Daniyatun',2,'1994-09-05','TI'),
('135518900','Mili Wilian',2,'1995-10-08','SI'),
('135510190','Marshel Saraun',1,'1993-10-23','MI'),
('135510191','Nacha Saraun',2,'1995-01-13','MI'),
('135558944','Bayu Mandalika',1,'1997-01-15','SI'),
('158984545','Juan Burnama',1,'1993-01-20','SI'),
('158549583','Candra Sidauruk',1,'1994-10-22','TK'),
('136349343','Kory Ubi',2,'1992-10-29','MI'),
('147343998','Chika Lestari',2,'1996-11-12','MI');

Terakhir kita insert beberapa contoh data pada tabel tersebut.

Membuat Koneksi Database

Buat sebuah file dengan nama koneksi.php

<?php

$host="localhost";
$user="root";
$password="";
$db="akademik";

$kon = mysqli_connect($host,$user,$password,$db);
if (!$kon){
	  die("Koneksi gagal:".mysqli_connect_error());
}
?>

File koneksi merupakan file konfigurasi ke database akademik sebagai database yang kita gunakan. Silahkan sesuaikan dengan konfigurasi yang kalian buat/miliki ya misalnya nama user dan penggunaan password. Kalo disini saya menggunakan nama user defaultyaitu root dan tidak menggunakan password, sehingga dikosongin.

Pencarian Data Berdasarkan Dua Periode Tanggal

Untuk menampilkan data/laporan dari database, kita menggunaan du periode tanggal tanggal awal dan tanggal akhir untuk menentukan range tanggal yang akan di filter dengan kalausa where dan between. Sebelum itu kalian harus mepersiapkan beberapa plugin yang kita butuhkan:

  • Bootstrap
  • JQuery
  • Bootstrap Datepicker

Untuk mendownload ketiga komponen tersebut sudah saya berikan link nya pada tutorial cara membuat datepicker di PHP. Silahkan baca dan download disana dulu ya.

Buatlah sebuah file dengan nama index.php pada text editor yang kalian miliki isi dari file nya adalah sebagai berikut:

<!DOCTYPE html>
<html>
<head>
    <!-- Load file CSS Bootstrap offline -->
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
    <script src="js/jquery-3.4.1.js"></script>
    <script src="datepicker/js/bootstrap-datepicker.js"></script>
    <link rel="stylesheet" href="datepicker/css/datepicker.css">
</head>
<body>
<div class="container">
    <br>
    <h4>Pencarian Data Berdasarkan Tanggal</h4>

    <form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">

        <div class="form-group">
            <label>Tanggal Awal</label>
            <div class="input-group date">
                <div class="input-group-addon">
                    <span class="glyphicon glyphicon-th"></span>
                </div>
                <input id="tgl_mulai" placeholder="masukkan tanggal Awal" type="text" class="form-control datepicker" name="tgl_awal"  value="<?php if (isset($_POST['tgl_awal'])) echo $_POST['tgl_awal'];?>" >
            </div>
        </div>
        <div class="form-group">
            <label>Tanggal Akhir</label>
            <div class="input-group date">
                <div class="input-group-addon">
                    <span class="glyphicon glyphicon-th"></span>
                </div>
                <input id="tgl_akhir" placeholder="masukkan tanggal Akhir" type="text" class="form-control datepicker" name="tgl_akhir" value="<?php if (isset($_POST['tgl_akhir'])) echo $_POST['tgl_akhir'];?>">
            </div>
        </div>

        <script type="text/javascript">
            $(function(){
                $(".datepicker").datepicker({
                    format: 'dd-mm-yyyy',
                    autoclose: true,
                    todayHighlight: false,
                });
                $("#tgl_mulai").on('changeDate', function(selected) {
                    var startDate = new Date(selected.date.valueOf());
                    $("#tgl_akhir").datepicker('setStartDate', startDate);
                    if($("#tgl_mulai").val() > $("#tgl_akhir").val()){
                        $("#tgl_akhir").val($("#tgl_mulai").val());
                    }
                });
            });
        </script>
    <div class="form-group">
        <input type="submit" class="btn btn-info" value="Cari">
    </div>
    </form>

    <table class="table table-bordered table-hover">
        <br>
        <thead>
        <tr>
            <th>No</th>
            <th>NIK</th>
            <th>Nama</th>
            <th>Jenis Kelamin</th>
            <th>Tanggal Lahir</th>
            <th>Jurusan</th>
        </tr>
        </thead>
        <?php

        include "koneksi.php";
        if (isset($_POST['tgl_awal'])&& isset($_POST['tgl_akhir'])) {

            $tgl_awal=date('Y-m-d', strtotime($_POST["tgl_awal"]));
            $tgl_akhir=date('Y-m-d', strtotime($_POST["tgl_akhir"]));


            $sql="select * from mahasiswa where tanggal_lhr between '".$tgl_awal."' and '".$tgl_akhir."' order by nim asc";

        }else {
            $sql="select * from mahasiswa order by nim asc";
        }

        $hasil=mysqli_query($kon,$sql);
        $no=0;
        while ($data = mysqli_fetch_array($hasil)) {
            $no++;
            ?>
            <tbody>
            <tr>
                <td><?php echo $no;?></td>
                <td><?php echo $data["nim"]; ?></td>
                <td><?php echo $data["nama"];   ?></td>
                <td><?php echo $data["jenis_kelamin"];   ?></td>
                <td><?php echo date('d-m-Y', strtotime($data["tanggal_lhr"]));   ?></td>
                <td><?php echo $data["jurusan"];   ?></td>
               
            </tr>
            </tbody>
            <?php
        }
        ?>
    </table>
</div>
</body>
</html>

Hasil Output:

Menampilkan data hari ini php

Dari program yang saya buat diatas, saya mencoba menampilkan data/laporan mahasiswa berdasarkan tanggal lahir mereka dengan range yang saya pilih adalah dari tanggal 01-01-1994 sampai dengan 11-01-1995. Nantinya ketika saya menekan tombol cari maka hanya data mahasiswa untuk tanggal lahir yang memenuhi range tersebut yang akan ditampilkan.

Disini kita membuat dua periode waktu awal dan akhir dimana waktu awal dapat dipilih kapan saja, namun untuk waktu akhir akan ditentukan dari waktu awal yang dipilih. waktu akhir tentunya tidak boleh kurang dari waktu awal, ketika kita sudah memilih waktu awal dan selanjutnya memilih waktu akhir, tanggal yang kurang dari waktu awal akan di disabled (tidak dapat dipilih).

Menampilkan data hari ini php