Minggu, 02 Desember 2012

Membuat Kode otomatis dari PHP ke MySql

Pada kesempatan ini saya akan mencoba untuk membantu teman-teman yang mengalami kesulitan dalam pembuatan kode otomatis di MySql. Mungkin teman-teman sudah tau jika dalam MySql ada perintah auto increment dimana fungsinya untuk menciptakan angka berurut secara otomatis. Namun auto increment di MySql hanya untuk angka saja tidak dapat di barengi dengan karakter. Langsung saya buat contoh saja mungkin ada diantara teman-teman yang belum mengerti semoga melalui contoh ini teman-teman dapat mengerti.. :D




Misalkan saja kita membuat suatu field di MySql dengan nama kode_barang dan untuk setiap kode_barang kita meng-inginkan berbareng dengan karakter seperti : BRG01, BRG02, BRG03, dll. Namun jika kita menandai kode_barang dengan auto increment maka otomatis kita harus membentuk tipe data integer untuk filed kode_barang tersebut. Sementar kode_barang yang ingin dibuat ada berbentuk karekater atau huruf maka tipe datanya harus varchar supaya filed kode_barang bisa terisi. Nah untuk mengatasi nya kita harus membuat script tambahan pada PHP nya..


Wah kayanya udah banyak omong nih Lansung aja kita mulai tutorial tapi sebelum nya teman-teman cuci tangan sampe bersih dulu biar segar ntar untuk mengetik script-scriptnya.


Pertama kita buat table di MySql dulu deh:
CREATE TABLE IF NOT EXISTS `tbl_barang` (
`kode_barang` varchar(20) NOT NULL,
`nama_barang` varchar(40) NOT NULL,
PRIMARY KEY (`kode_barang`)
)

setelah itu kita masuk ke script php nya.
<?

// koneksi ke mysql
mysql_connect("localhost", "root", "");
mysql_select_db("db_latihan");

// membaca kode barang terbesar
$query = "SELECT max(kode_barang) as maxKode FROM tbl_barang";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);
$kodeBarang = $data['maxKode'];

// mengambil angka atau bilangan dalam kode anggota terbesar,
// dengan cara mengambil substring mulai dari karakter ke-1 diambil 6 karakter
// misal 'BRG001', akan diambil '001'
// setelah substring bilangan diambil lantas dicasting menjadi integer
$noUrut = (int) substr($kodeBarang, 3, 3);

// bilangan yang diambil ini ditambah 1 untuk menentukan nomor urut berikutnya
$noUrut++;

// membentuk kode anggota baru
// perintah sprintf("%03s", $noUrut); digunakan untuk memformat string sebanyak 3 karakter
// misal sprintf("%03s", 12); maka akan dihasilkan '012'
// atau misal sprintf("%03s", 1); maka akan dihasilkan string '001'
$char = "BRG";
$newID = $char . sprintf("%03s", $noUrut);

//Memasukkan data textbox ke database
if($submit){
$kode = $_POST['kode_barang'];
$nama = $_POST['nama_barang'];

$query2 = "INSERT INTO tbl_barang VALUES ('$kode', '$nama')";
$hasil2 = mysql_query($query2);

if ($hasil2) {
header("Location: test.php");
echo "Berhasil";
exit();
}else{
echo "gagal";
}
}

?>

<h1>Tambah Barang Baru</h1>

<form method="post" action="test.php">
<table border="0">
  <tr><td>Kode Barang</td><td>:</td><td><input type="text" readonly="" name="kode_barang" value="<?php echo $newID; ?>"></td></tr>
  <tr><td>Nama Barang</td><td>:</td><td><input type="text" name="nama_barang"></td></tr>
  <tr><td></td><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>

cukup sekian.. semoga bermanfaat buat teman-teman.. :D
ada pertanyaan silahkan ke sumbernya.
karna saya juga masih dalam tahap belajar :P
sumber: http://hendrysimamora.blogspot.com

8 komentar: