Membuat Custom Kode (Primary Key) Otomatis di PHP


Pada postingan kali ini, saya akan membagikan bagaimana membuat kode yang dijadikan sebagai primary key secara otomatis dengan format tertentu, misal AM0001, AM0002, AM0003 dan seterusnya. Sebenarnya MySQL sendiri sudah menyediakan fitur auto increment dengan format 1,2,3,4, dan seterusnya, tetapi ada beberapa kekurangan karena untuk auto increment di MySQL yang terinclude di XAMPP hanya dibatas sebanyak 3 miliar record.

Nah, untuk membuat format ID dengan format sesuai keinginan kita, bisa kita selesaikan dengan membuat fungsi di PHP untuk kemudian tinggal kita panggil.

<?php
  function create_id($tabel,$pk,$text,$jml){
      include "database.php";
      $query = mysqli_query($mysqli,"SELECT RIGHT($pk,$jml) AS 'max' FROM $tabel ORDER BY $pk DESC LIMIT 1");
      $list = mysqli_fetch_array($query);
      $number = $list['max']+1;
      $new_id = $text.str_pad($number,$jml,"0",STR_PAD_LEFT);
      return $new_id;
  }
?>

Penjelasan dari fungsi di atas adalah sebagai berikut:

  • Fungsi tersebut kita beri nama create_id
  • Variabel yang dibutuhkan ada 4 yaitu:
    • $tabel , adalah nama tabel di mana id baru akan disimpan
    • $pk , adalah primary key dari tabel di atas
    • $text , adalah text yang akan ditambahkan di depan nomor urut sebagai prefix (seperti contoh AM0001, maka $text nya adalah AM)
    • $jml , jumlah karakter nomor urut (seperti contoh AM0001, maka no urutnya adalah 0001 dan jumlahnya 4)
  • Untuk mamanggil fungsi tersebut tinggal ketikkan create_id(nama_tabel,kolom_pk,teks_prefix)
Contoh dalam coding php:

<?php
	$desk = $_POST['desk_mapel'];
	$new_id = create_id("m_mapel","id_mapel","MP","4");
	$sql = mysqli_query($mysqli,"insert into m_mapel values ('$new_id','$desk')");
	$return = array(
		'title'=>"Sukses!",
		'text'=>"Data Berhasil Disimpan!",
		'type'=>"success",
	);
	echo json_encode($return);
?>

Penjelasan:
  • Misal kita mau membuat insert mapel dengan hanya mengambil nilai POST deskripsi mapel dari form
  • ID otomatis akan create_id("m_mapel","id_mapel","MP","4") dengan keterangan:
    • m_mapel adalah nama tabel
    • id_mapel adalah primary key dari tabel tersebut
    • MP adalah prefix di depan nomor urut
    • 4 adalah jumlah karakter nomor urut

Keyword:
  • ID otomatis
  • Kode otomatis
  • Membuat nomor otomatis
  • Otomatis nomor transaksi
  • Autonumber

Posting Komentar

1 Komentar

  1. The coin casino | Play Now - CasinoWow
    › games › games Learn to play and win in coin casino and make a casino deposit. We are 코인카지노 쿠폰 one of the largest casino sites for players to win real money with amazing rewards and the

    BalasHapus