Belajar PHP - Hai, pada kesempatan kali ini kita akan membuat kode otomatis berdasarkan tanggal dengan PHP dan MySQL.
Yang dimaksud otomatis berdasarkan tanggal yaitu kode akan berisi tanggal yang disambung dengan nomor urut.
Semisalkan, 20-10-2019 maka kodenya akan menjadi 2010190001 (0001 pada akhir kode adalah nomor urut penginputan pada hari itu).
Nomor urut akan terus bertambah seiring dilakukannya penginputan dihari yang sama, dan apabila hari berganti maka secara otomatis tanggal pada kode akan berubah dan nomor urutnya akan diulang dari awal.
Supaya lebih jelas, kita langsung saja praktekan gengs.
Database
Disini saya buat database dengan nama penjualan dan didalamnya terdapat tb_transaksi. Berikut struktur tabel pada tb_transaksi.Atau masukan kode berikut pada menu SQL untuk membuat database beserta tabelnya.
CREATE DATABASE penjualan;
USE penjualan;
CREATE TABLE tb_transaksi(
kode_transaksi varchar(15) PRIMARY KEY,
tanggal timestamp()
);
index.php
File ini berisi kode untuk tampilan sekaligus proses yang berkaitan dengan database.
<?php
// koneksi
$conn = mysqli_connect('localhost', 'root', '', 'penjualan');
if (!$conn) {
echo "Koneksi gagal " . mysqli_connect_error();
}
$kode = '';
// cek kode
$query = mysqli_query($conn, "SELECT max(right(kode_transaksi, 4)) AS kode FROM tb_transaksi WHERE DATE(tanggal) = CURDATE()");
// var_dump($query);
if ($query->num_rows > 0) {
foreach ($query as $q) {
$no = ((int)$q['kode'])+1;
$kd = sprintf("%04s", $no);
}
} else {
$kd = "0001";
}
date_default_timezone_set('Asia/Jakarta');
$kode = date('dmy').$kd;
if (isset($_POST['submit'])) {
// simpan kode
$simpan = mysqli_query($conn, "INSERT INTO tb_transaksi (kode_transaksi) VALUES ('".$_POST['kode']."')");
header('Location:index.php');
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Membuat Kode Otomatis</title>
</head>
<body>
<form method="POST" action="">
<label>Kode Transaksi : </label>
<input type="text" name="kode" value="<?= $kode; ?>" disabled>
<button type="submit" name="submit">Kirim</button>
</form>
</body>
</html>
Output:
Penjelasan:
// cek kode
$query = mysqli_query($conn, "SELECT max(right(kode_transaksi, 4)) AS kode FROM tb_transaksi WHERE DATE(tanggal) = CURDATE()");
// var_dump($query);
if ($query->num_rows > 0) {
foreach ($query as $q) {
$no = ((int)$q['kode'])+1;
$kd = sprintf("%04s", $no);
}
} else {
$kd = "0001";
}
Pada kode diatas kita melakukan pengecekan data berdasarkan tanggal sekarang, apabila sudah terdapat data maka kondisi pertama dijalankan dan secara otomatis nomor urut akan ditambah 1 (+1).
Jika belum terdapat data maka kondisi kedua akan dijalankan dan nomor urut 0001.
if (isset($_POST['submit'])) {
// simpan kode
$simpan = mysqli_query($conn, "INSERT INTO tb_transaksi (kode_transaksi) VALUES ('".$_POST['kode']."')");
header('Location:index.php');
}
Kode diatas akan dijalankan ketika tombol kirim diklik dan kode transaksi secara otomatis akan berubah.
Nah, sampai sini kita sudah berhasil membuat kode otomatis dengan native PHP dan MySQL dan semoga bermanfaat. Terimakasih dan sampai jumpa.
1 Komentar
apakah ada yang salah dari codig nya? kok saya gabisa ya
BalasHapus