Membuat Pengkodean Otomatis Pada Field Tabel

Assalamualaikum, para neters aku mau bagi-bagi ilmu lagi, dalam tutorial ini. Saya ingin berbagi ilmu atau informasi tentang programming, yakni php dan mysql. Biasanya pada saat belajar php dan mysql, dalam materi buku tamu dan lain-lain, pada saat pembuatan id_tamu, kode_tamu dan sebagainya, tipe data field yang digunakan adalah int(3) dan menggunakan extra : autoincrement, dan primary key : mencegah data yang sama. (ya iyalah, datanya tidak sama karena di kasih fasilitas autoincrement).
1
2
3
4
5
CREATE TABLE `tamu` (
`id_tamu` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nama` VARCHAR( 25 ) NOT NULL ,
`pesan` VARCHAR( 25 ) NOT NULL
) ENGINE = MYISAM ;
Nah sekarang kita ubah kebiasan tersebut, menggunakan kode auto, pada saat dijalankan dilocalhost, data tersebut akan bertambah otomatis. Caranya adalah dengan membuat fungsi buatan seperti berikut. Dalam tutorial ini saya hanya menampilkan hasilnya saja, saya yakin kamu bisa membuat database, dan table sendiri dan file koneksi.php nya sendiri. Baiklah Langsung saja.

Langkah 1

Buka aplikasi web editor kesukaan kamu, disini saya menggunakan Adobe Dreamweaver CS3. Lalu ketik kode seperti berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function kdauto($tabel, $inisial){
$struktur  = mysql_query("SELECT * FROM $tabel");
$field        = mysql_field_name($struktur,0);
$panjang    = mysql_field_len($struktur,0);
$qry  = mysql_query("SELECT max(".$field.") FROM ".$tabel);
$row  = mysql_fetch_array($qry);
if ($row[0]=="") {
$angka=0;
}
else {
$angka= substr($row[0], strlen($inisial));
}
$angka++;
$angka      =strval($angka);
$tmp  ="";
for($i=1; $i<=($panjang-strlen($inisial)-strlen($angka)); $i++) {
$tmp=$tmp."0";
}
return $inisial.$tmp.$angka;
}
?>
Simpan dengan nama kode_auto.php

Langkah 2

Nah pada saat pembuatan table, pada filed id_tamu kita ubah type datanya menjadi varchar, tidak diberi auto increment, dan primary key. Seperti contoh berikut :
1
2
3
4
5
CREATE TABLE `tamu` (
`id_tamu` VARCHAR(5 ) NOT NULL,
`nama` VARCHAR( 25 ) NOT NULL ,
`pesan` VARCHAR( 25 ) NOT NULL
) ENGINE = MYISAM ;

Langkah 3

Kapan kode ini digunakan ??
Pada saat pembuatan form. Letakan kode ini di dalam value textfield yang digunakan. Buat dua textfield satu untuk ditampilkan satu untuk dihidden (disembunyikan), pastikan diatas tag html, kamu sudah menulis include koneksi ke database dan file kode_auto.php. Seperti kode berikut :
1
2
3
4
5
6
<?php
Include “koneksi.php”;
Include “kode_auto.php”;
?>
<input name="id_tamu" type="text"  maxlength="6" size="6" value="<? echo kdauto("tamu","T"); ?>" disabled="disabled">
<input name="id_tamu" type="hidden" value="<? echo kdauto("tamu","T"); ?>">
Berikut tampilan hasil nya saat dijalankan dilocalhost :
Berikut Kode selengkapnya :
File form_tamu.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
include "koneksi.php";
include  "kode_auto.php";
?>
<form id="form1" name="form1" method="post" action="">
<p>nomor tamu
<input name="id_tamu" type="text" id="id_tamu" value="<? echo kdauto("tamu","T"); ?>" disabled="disabled" />
<input name="id_tamu" type="hidden" id="id_tamu" value="<? echo kdauto("tamu","T"); ?>" />
</p>
<p>nama tamu
<input type="text" name="nama" id="nama" />
</p>
<p>
pesan
<input type="text" name="textfield3" id="textfield3" />
</p>
<p>
<input type="submit" name="button" id="button" value="Kirim" />
</p>
</form>
</body>
</html>
File koneksi.php 
1
2
3
4
<?php
mysql_connect("localhost", "root", "123456");
mysql_select_db("data") or die ("tidak ada database ".mysql_error());
?>
Kode table database
1
2
3
4
5
6
CREATE TABLE `tamu` (
`id_tamu` varchar(5) NOT NULL,
`nama` varchar(25) NOT NULL,
`pesan` varchar(25) NOT NULL,
PRIMARY KEY  (`id_tamu`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
File kode_auto.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function kdauto($tabel, $inisial){
$struktur   = mysql_query("SELECT * FROM $tabel");
$field            = mysql_field_name($struktur,0);
$panjang    = mysql_field_len($struktur,0);
$qry  = mysql_query("SELECT max(".$field.") FROM ".$tabel);
$row  = mysql_fetch_array($qry);
if ($row[0]=="") {
$angka=0;
}
else {
$angka= substr($row[0], strlen($inisial));
}
$angka++;
$angka      =strval($angka);
$tmp  ="";
for($i=1; $i<=($panjang-strlen($inisial)-strlen($angka)); $i++) {
$tmp=$tmp."0";
}
return $inisial.$tmp.$angka;
}
?>
Fungsi dari kode diatas bisa kamu gunakan untuk tabel database yang lain, karena sifatnya fleksibel, memanggil nama tabel yang dibuat dalam database. Semoga bermanfaat jika maseh bingung silahkan ber-komeng-komeng dibawah ya, jangan lupa makasih atas like nya. Ntar kasih cendol deh.
untuk mengunduh file pada tutorial ini, klik disini File Kode Otomatis (1191)

Komentar