Membuat Script Fungsi Autonumber dengan PHP

Membuat Script Fungsi Autonumber dengan PHP
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.
<?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...
Membuat Script Fungsi Autonumber dengan PHP

Dan berikut ini beberapa contoh penggunaan autonumber pada program aplikasi gudang.
Membuat Script Fungsi Autonumber dengan PHP
Sekian tulisan dari saya, semoga dapat memberi manfaat bagi kawan-kawan pembaca.


URL: https://phpbejo.blogspot.com/2013/10/membuat-script-fungsi-autonumber-dengan-php.html
PHPBEJO: Tutorial Dasar Pemrograman PHP

Share this

Related Posts

Previous
« Prev Post

27 komentar

komentar
16 Maret 2014 pukul 10.43 delete

Ok makasih bos atas info nya...

Reply
avatar
7 November 2014 pukul 08.57 delete

Makasih banyak infonya komandan

Reply
avatar
16 Desember 2014 pukul 08.56 delete

Bro. Mau tanya dong.
Supaya 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

Reply
avatar
16 Desember 2014 pukul 09.06 delete

Saya nanya itu krn autonumbernya tetep 0001 walaupun di recordnya ada id "1".

Reply
avatar
22 Desember 2014 pukul 02.52 delete

untuk autonumber, tidak harus dengan kode seperti diatas kok :), cara lain, pada tabel > field dibuat autoincrement dengan tipe data INT, beri status PRIMARY buat fieldnya..

tapi 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.

Reply
avatar
22 Desember 2014 pukul 03.16 delete

untuk catatan
pastikan tipe data untuk autonumber dengan tipe varchar, lebar minimal 5.

Reply
avatar
4 Januari 2015 pukul 15.31 delete

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

Reply
avatar
6 Januari 2015 pukul 17.47 delete

coba kalau boleh lihat codenya gan..

catatan:
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.

Reply
avatar
11 Februari 2015 pukul 20.20 delete

mas mohon bantuannya

autonumber 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

Reply
avatar
13 Februari 2015 pukul 15.43 delete

coba ganti bagian values dengan yang ini --------------------------------------

value="< ? php echo autoNumber('id','tabel') ? >"

Reply
avatar
14 Februari 2015 pukul 22.43 delete

Sudah mas
Dari 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

Reply
avatar
14 Februari 2015 pukul 22.43 delete

Sudah mas
Dari 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

Reply
avatar
23 April 2015 pukul 12.17 delete

maaf, slow respon, jika urgent silahkan chat YM saya di fitri_ariyanto@yahoo.co.id

boleh lihat kode lengkap yang sdri srie buat? silahkan copaste saja di kolom komentar, disini

Reply
avatar
23 Juli 2015 pukul 20.42 delete

itu karena di disabled, coba diganti jadi readonly seperti berikut :

Reply
avatar
23 Juli 2015 pukul 20.43 delete

< type="text" name="txtnik" size="10" value="" readonly="readonly"/>

Reply
avatar
6 Desember 2015 pukul 06.05 delete

Assalamu'alaikum gan, untuk contoh autonumber seperti di atas PRDGODGPAK**** itu bagaimana ya listingnya ? terimakasih

Reply
avatar
11 Januari 2016 pukul 11.30 delete

master untuk autonumber php5 dan mysqli na gmana....

Reply
avatar
11 Januari 2016 pukul 12.08 delete

master untuk autonumber php5 dan mysqli na gmana....

Reply
avatar
7 Februari 2016 pukul 21.23 delete

maksudnya gimana gan ? ndak paham

contoh 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

Reply
avatar
18 Juni 2016 pukul 19.38 delete

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
. biar nomer ke 8 8 orang itu beda gimana ya?

Reply
avatar
24 Juni 2017 pukul 15.40 delete



Gan 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

Reply
avatar
15 September 2017 pukul 09.03 delete

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.

Reply
avatar
15 September 2017 pukul 09.04 delete

coba di cek di tabel nya gan, di hosting. panjang karakter field nya sama apa belom ?

Reply
avatar
15 September 2017 pukul 09.06 delete

skrip delete nya sama seperti delete data field pada umunya kok, contohnya gini

delete * from tabel_barang where id_barang = 1

query diatas akan men-delete data di tabel barang yang memiliki nomer id 1.

Reply
avatar