Thursday, September 11, 2008

Generate ID Dengan Pola Tertentu Dengan PHP

Dari artikel berikut, sebuah kode yang baik tentunya memiliki pola dan jumlah digit tertentu. Misalnya kode transaksi yang diinput di table transaksi, terdiri dari 8 digit dimana empat digit pertama adalah tahun entri dan 4 digit terakhir adalah nomor urut dari transaksi yang terjadi di tahun entri. Pola yang dimaksud adalah
YYYYXXXX
YYYY = 4 digit tahun entri
XXXX = nomor urut dari transaksi yang dientri selama tahun YYYY

Dari kombinasi urutan di atas, berarti maksimal transaksi yang terjadi dalam satu tahun adalah 9999 item transaksi. Bagaimana kalau lebih dari 9999, tentunya dengan 4 digit no urut di atas tidak cukup, maka sebaiknya jangan dibuat per tahun, tapi tambahkan per tahun dan perbulan bahkan per tanggal jika transaksi per hari sampai puluhan ribu.

Contoh data transaksi
kd_tr tgl_tr kd_brg kd_plg jlh_beli
20080001 12/06/2008 B0001 P0001 5
20080002 11/08/2008 B0002 P0005 6
20080003 28/08/2008 B0001 P0002 7

Pertama buatlah table transaksi

Siapkan table

create table trbeli
(
kd_tr char(8) primary key,
tgl_tr date,
kd_brg char(5),
kd_plg char(5),
jlh_beli int
)

con.php

$hostname = "localhost";
$username = "root";
$password = "";
$dbname = "tokoabc”;

$con = mysql_connect($hostname,$username,$password);
mysql_select_db($dbname,$conn) or die ("Tidak bisa melakukan koneksi ke database");
?>

entri_tr.php

include ("con.php"); // koneksi database

$yyyy = date(“Y”);

//ambil nomor maksimal dan tambahkan 1 dari no urut yang sudah ada
$sql_id = "select max(right(kd_tr,4)) + 1 as new_count from trbeli where left(kd_tr,4)=’$yyyy’";
$rs_id = mysql_query($sql_id, $con) or die ("Query error");
$row_id = mysql_fetch_array($rs_id);

$x = $row_id['kd_tr'];

//jika belum ada transaksi maka no urut dimulai dari 1
if($x == 0 || $x == NULL){
$x = 1;
}

//untuk menjaga agar jumlah digit no urut tetap 4 digit
if(strlen($x) == 1){
$x = "000" . $x;
}
else if(strlen($x) == 2){
$x = "00" . $x;
}
else if(strlen($x) == 3){
$x = "0" . $x;
}


$kd_tr = $yyyy . $x;
//diasumsikan value kode dan jumlah barang disubmit dari form
$kd_brg = $_POST[‘kd_brg’];
$jlg_beli = $_POST[‘jlh_beli’];

$sql = “insert into trbeli(kd_tr, tgl_tr, kd_brg, kd_plg, jlh_beli)
values(‘$kd_tr’, ’now()’,’$kd_brg’,’$jlh_beli’)”;

if(mysql_query ($sql, $con))
{
eho “Sukses menyimpan traksaksi”;
}
ese
{
echo “Gagal menyimpan transaksi”;
}

mysql_close($con);

?>

1 comment:

zoel said...

thanks...lagi butuh nih script ini