Banyak sekali contoh dan script tentang autonumbering (membuat nomor otomatis) ini dalam berbagai bahasa pemrograman. Dalam tulisan kali ini, kembali saya ingin membagikan sedikit pengetahuan saya tentang Bagaimana membuat script atau fungsi nomor otomatis/ autonumber dengan PHP ?
Yang mana, tulisan ini akan menjelaskan fungsi autonumber/ nomor otomatis dengan membaca jumlah record atau jumlah data yang tersimpan di database dan menambah +1 sebagai angka atau nilai baru.
Berikut potongan baris kode autonumber with php.
Langkah 1
Kita buat database beserta tabel. Untuk mempermudah dan agar supaya lebih cepat, silahkan copy dan paste script create database pada halaman ini Mencetak Laporan ke MS EXCEL dengan PHP.
Langkah 2
Buat file atau berkas baru dengan text editor atau php editor, simpan dengan nama autonumber.php, kemudian ketikkan kode fungsi berikut ini.
Memanggil fungsi autonumber ke dalam tag html/ form di halaman web. Berikut potongan baris kode HTML yang saya gunakan. C&P :)
Simpan hasil pengkodean, buka aplikasi browser dan akses berkas autonumber.php. Lihat hasilnya. Jreeeeng...
Dan berikut ini beberapa contoh penggunaan autonumber pada program aplikasi gudang.
Kita buat database beserta tabel. Untuk mempermudah dan agar supaya lebih cepat, silahkan copy dan paste script create database pada halaman ini Mencetak Laporan ke MS EXCEL dengan PHP.
Langkah 2
Buat file atau berkas baru dengan text editor atau php editor, simpan dengan nama autonumber.php, kemudian ketikkan kode fungsi berikut ini.
<?php /* -- -------------------------------------------------------- -- -------------------------------------------------------- -- Nama File : autonumber.php -- Author : Fitri Ariyanto -- Email : seorang.fitri@gmail.com -- Website : http://usersonly.wordpress.com/ || http://phpbejo.blogspot.com -- Copyright [c] 2013 Fitri Ariyanto -- -------------------------------------------------------- */ mysql_connect("localhost","root","") or die("Gagal melakukan Koneksi!"); mysql_select_db("raport") or die("Gagal memilih Database!"); function autoNumber($id, $table){ $query = 'SELECT MAX(RIGHT('.$id.', 4)) as max_id FROM '.$table.' ORDER BY '.$id; $result = mysql_query($query); $data = mysql_fetch_array($result); $id_max = $data['max_id']; $sort_num = (int) substr($id_max, 1, 4); $sort_num++; $new_code = sprintf("%04s", $sort_num); return $new_code; } ?>Langkah 3
Memanggil fungsi autonumber ke dalam tag html/ form di halaman web. Berikut potongan baris kode HTML yang saya gunakan. C&P :)
<!DOCTYPE html> <html> <head><title>Membuat Script Fungsi Autonumber dengan PHP</title></head> <body> <form action="" method="post"> <table> <tr> <td>User ID</td> <td>:</td> <td><input name="userid" size="30" type="text" value="<?php echo autoNumber('no','tb_login');?>"/></td> </tr> <tr> <td>Nama</td> <td>:</td> <td><input name="username" size="30" type="text" /></td> </tr> <tr> <td>Akses</td> <td>:</td> <td> <select name="akses" style="width: 210px;"> <option value="ADMIN">ADMIN</option> <option value="GURU">GURU</option> <option value="WALI KELAS">WALI KELAS</option> <option value="KURIKULUM">KURIKULUM</option> </select> </td> </tr> <tr> <td>Password</td> <td>:</td> <td><input name="password" size="30" type="password" /></td></tr> </table> </form> </body> </html>berikut ini tampilan kode secara keseluruhan dalam script fungsi autonumber dengan php.
<?php /* -- -------------------------------------------------------- -- -------------------------------------------------------- -- Nama File : autonumber.php -- Author : Fitri Ariyanto -- Email : seorang.fitri@gmail.com -- Website : http://usersonly.wordpress.com/ || http://phpbejo.blogspot.com -- Copyright [c] 2013 Fitri Ariyanto -- -------------------------------------------------------- */ mysql_connect("localhost","root","") or die("Gagal melakukan Koneksi!"); mysql_select_db("raport") or die("Gagal memilih Database!"); function autoNumber($id, $table){ $query = 'SELECT MAX(RIGHT('.$id.', 4)) as max_id FROM '.$table.' ORDER BY '.$id; $result = mysql_query($query); $data = mysql_fetch_array($result); $id_max = $data['max_id']; $sort_num = (int) substr($id_max, 1, 4); $sort_num++; $new_code = sprintf("%04s", $sort_num); return $new_code; } ?> <!DOCTYPE html> <html> <head><title>Membuat Script Fungsi Autonumber dengan PHP</title></head> <body> <form action="" method="post"> <table> <tr> <td>User ID</td> <td>:</td> <td><input name="userid" size="30" type="text" value="<?php echo autoNumber('no','tb_login');?>" /></td> </tr> <tr> <td>Nama</td> <td>:</td> <td><input name="username" size="30" type="text" /></td> </tr> <tr> <td>Akses</td> <td>:</td> <td> <select name="akses" style="width: 210px;"> <option value="ADMIN">ADMIN</option> <option value="GURU">GURU</option> <option value="WALI KELAS">WALI KELAS</option> <option value="KURIKULUM">KURIKULUM</option> </select> </td> </tr> <tr> <td>Password</td> <td>:</td> <td><input name="password" size="30" type="password" /></td> </tr> </table> </form> </body> </html>Langkah 4
Simpan hasil pengkodean, buka aplikasi browser dan akses berkas autonumber.php. Lihat hasilnya. Jreeeeng...
Sekian tulisan dari saya, semoga dapat memberi manfaat bagi kawan-kawan pembaca.
27 komentar
komentarOk makasih bos atas info nya...
ReplyMakasih banyak infonya komandan
ReplyBro. Mau tanya dong.
ReplySupaya id nya jadi angka 1 digit doang, bukan 0001 apa yang harus di ganti?
Trus kalo jumlah recordnya udah nyampe 2 digit, idnya bakal jadi 10, 11, 12, dst ato gagal kalo angka awal id nya bukan yg 0001?
Tolong cepet ya balesnya. Dead Line nih bro
Saya nanya itu krn autonumbernya tetep 0001 walaupun di recordnya ada id "1".
Replyuntuk autonumber, tidak harus dengan kode seperti diatas kok :), cara lain, pada tabel > field dibuat autoincrement dengan tipe data INT, beri status PRIMARY buat fieldnya..
Replytapi semisal pakai kode diatas, bisa juga, kopi kode berikut,
function autoNumber($id, $table){
$query = 'SELECT MAX('.$id.') as max_id FROM '.$table.' ORDER BY '.$id;
$result = mysql_query($query);
$data = mysql_fetch_array($result);
$id_max = $data['max_id'];
$sort_num = (int)($id_max);
$sort_num++;
$new_code = $sort_num;
return $new_code;
}
database, cara panggil fungsi, sama sperti diatas.
Ok sama-sama :)
ReplySiap ndan.....
Replyuntuk catatan
Replypastikan tipe data untuk autonumber dengan tipe varchar, lebar minimal 5.
Gan ane mau nanya. Ane dah berhasil buat auto number nya. Tapi masalahnya ketika saya pakai sql select max (id_transaksi) as max_id from transaksi dia cuman bisa lihat id maksimal sampe 9. Jadi kalo id transaksi udah sampe TR10 tetap di temukan id maksimal sampai TR9 , mohon bantuannya gan
Replycoba kalau boleh lihat codenya gan..
Replycatatan:
untuk query harusnya seperti ni gan...
SELECT MAX(RIGHT('no_id', 4)) as max_id FROM tbl_transaksi ORDER BY no_id
semua yang ditulis diatas lancar saja kok, sampai 4 digit nomor, ex: 9999.
mas mohon bantuannya
Replyautonumber saya berhasil, tapi saat di insert ada prompt 'undefined index txtnik', di form untuk text nik saya buat < type="text" name="txtnik" size="10" value="" disabled="disabled"/>
mohon bantuannya mas
terima kasih sebelumnya
coba ganti bagian values dengan yang ini --------------------------------------
Replyvalue="< ? php echo autoNumber('id','tabel') ? >"
Sudah mas
ReplyDari yang saya baca value dari text yg ada autonumb itu tidak terbaca, bagaimana caranya supaya value autonumb itu terbaca dan bisa diinsert mas?
Mohon bantuannya
Makasi sebelumnya
Sudah mas
ReplyDari yang saya baca value dari text yg ada autonumb itu tidak terbaca, bagaimana caranya supaya value autonumb itu terbaca dan bisa diinsert mas?
Mohon bantuannya
Makasi sebelumnya
maaf, slow respon, jika urgent silahkan chat YM saya di fitri_ariyanto@yahoo.co.id
Replyboleh lihat kode lengkap yang sdri srie buat? silahkan copaste saja di kolom komentar, disini
itu karena di disabled, coba diganti jadi readonly seperti berikut :
Reply< type="text" name="txtnik" size="10" value="" readonly="readonly"/>
ReplyAssalamu'alaikum gan, untuk contoh autonumber seperti di atas PRDGODGPAK**** itu bagaimana ya listingnya ? terimakasih
Replymaster untuk autonumber php5 dan mysqli na gmana....
Replymaster untuk autonumber php5 dan mysqli na gmana....
Replymaksudnya gimana gan ? ndak paham
Replycontoh diatas menggunakan software
-- Server version:5.5.27 - MySQL Community Server (GPL)
-- Server OS:Win32
-- PHP Version: 5.x.x
untuk memulai latihan diatas bisa dimulai dari sini
http://phpbejo.blogspot.co.id/2013/10/mencetak-ke-laporan-microsoft-excel-dari-php.html
link nya disini gan
ReplyMembuat Script Fungsi Autonumber dengan PHP
bang, kalo saat nginputnya bersamaan biar beda nomer n=gimana ya, kasusnya.. ada agent, booking tempat duduk 8 orang, nah otomatis kan langsung create 8 tdi kan
Reply. biar nomer ke 8 8 orang itu beda gimana ya?
ReplyGan ane pake fungsi ini di localhost lancar, tp ketika web ane hosting di hostinger.co.id id nya jadi ga sesuai panjang maxlength ya gan itu knapa? Bituh solusi gan thanks
script diatas sudah auto kayaknya, jadi ketika kita nge-create 8 produk, sudah otomatis nambah, 1,2,3,4,xxx.. soalnya dari skrip diatas querynya nge-cek dlu di database nilai terakhir pake fungsi right, jadi diambil dari kanan 4 digit, klo sudah match / ketemu baru ditambah 1.
Replycoba di cek di tabel nya gan, di hosting. panjang karakter field nya sama apa belom ?
Replyskrip delete nya sama seperti delete data field pada umunya kok, contohnya gini
Replydelete * from tabel_barang where id_barang = 1
query diatas akan men-delete data di tabel barang yang memiliki nomer id 1.