Membuat nomor urut secara otomatis pada database MySQL menggunakan php

Waktu dulu pernah saya tulis tutorial serupa tentang Cara membuat nomor urut terbentuk secara otomatis pada database MySQL, hanya saja kali ini saya akan memberikan contoh pemrosesan nya menggunakan php, yang mana pada saat pemrosesanya nanti akan dibuatkan query ke MySQL terlebih dahulu untuk mengambil data nomor yang terakhir, dan nantinya data nomor tersebut akan ditambah 1 (satu) sebelum dimasukan ke table database.

Baiklah, kita langsung saja membuatkan contohnya....
Pertama-tama silahkan buat terlebih dahulu database baru bernama terserah anda, dan tambahkan table beserta field-field nya, silahkan copy saja contoh table dibawah ini agar lebih mempercepat tutorial ini, hehe...

CREATE TABLE `namatable` (
  `nomor` int(11) NOT NULL,
  `nama` varchar(50) NOT NULL,
  `alamat` varchar(100) NOT NULL,
  PRIMARY KEY  (`nomor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Baiklah, database baru berikut contoh table diatas sudah terbentuk, kemudian silahkan buatlah koneksi ke MySQL nya menggunakan php, seperti contoh file config.php dibawah ini:

IKLAN:


File config.php

<?php
//Buat koneksi sederhana ke database, sesuaikan data login ke server MySQL nya
//Server(localhost), Port(3308), Username(root), Password(1234)
$connect = mysql_connect("localhost:3308","root","1234");
//Sesuaikan nama table nya
mysql_select_db("namadatabase", $connect);
?>

Silahkan sesuaikan koneksi diatas dengan MySQL Server yang anda miliki, seperti nama server, nomor Port (jika menggunakan Port yang berbeda), username, dan password nya...
Setelah itu, silahkan buatlah sebuah Formulir untuk menginputkan data baru nya, seperti contoh form.php dibawah ini:

File form.php

<h2>Masukan Data Baru!</h2>
<table>
<form name="insert" action="proses.php" method="post">
<tr><td style="float:right;">Nama: </td><td><input type="text" name="nama" /></td></tr>
<tr><td style="float:right;">Alamat: </td><td><input type="text" name="alamat" /></td></tr>
<tr><td colspan="2"><input type="submit" name="submit" value="Kirim" style="float:right;" /></td></tr>
</form>
</table>
<a href="index.php">Lihat data yang telah ada >></a>

ScreenShoot:

Tampilan Form pada Browser FireFox

Data baru yang dimasukan pada form diatas akan dibawa dan di proses menggunakan Post Method ke file proses.php dibawah... Silahkan anda perhatikan, form diatas tidak menyertakan form nomor, padahal field nomor terdapat pada database yang telah dibuat tadi... Memang khususnya data nomor akan ditambahkan nanti saat pemrosesan berlangsung, ide nya seperti ini:

>> Data baru dimasukan pada form.php, kemudian akan di proses oleh file proses.php
>> Bersamaan dengan pemrosesan tersebut, Query ke MySQL akan berlangsung untuk mengambil data nomor yang terakhir dimasukan sebelumnya
>> Kemudian data nomor tersebut akan di tambah 1 (satu), dan dijadikan Variable sebagai data nomor yang akan dimasukan ke database

Silahkan perhatikan file proses.php dibawah ini:

File proses.php

<?php
//Masukan koneksi ke database nya disini
include "config.php";
//Query pertama, mengambil data nomor terakhir sesuai dengan nomor terbesar
$q = mysql_query("SELECT * FROM namatable ORDER BY nomor DESC LIMIT 1");
$jumlah = mysql_num_rows($q);
$data = mysql_fetch_array($q);
//Jika tidak ada data, maka nomor pertama adalah 1
 if($jumlah <= 0){
  $nomorbaru = 1;
 }
 //Jika ada data terakhir maka nomor urut akan ditambah 1
 else{
  $nomorbaru = $data[nomor] + 1;
 }
//Jika form nama tidak di isi
if($_POST[nama] == ""){echo "Nama jangan dokosongkan...";}
//Jika form alamat tidak di isi
else if($_POST[alamat] == ""){echo "Alamat jangan dikosongkan...";}
//Jika kedua form di isi masukan data baru ke database
else{
mysql_query("INSERT INTO namatable (nomor, nama, alamat) VALUES ('$nomorbaru','$_POST[nama]','$_POST[alamat]')");
//Pemrosesan telah selesai, dan kembalikan ke halaman index.php
echo "<b>Data baru telah ditambahkan...</b> <script>window.location = 'index.php';</script>";
}
exit;
?>

Proses di atas akan berlangsung dalam hitungan mili detik... Kemudian untuk menampilkan semua data yang ada di database MySQL akan dilakukan pada halaman index.php

File index.php

<?php
//Masukan koneksi nya disini
include "config.php";
//Buat Query untuk menampilkan semua data yang ada di table database
$query = mysql_query("SELECT * FROM namatable ORDER BY nomor");
$jum = mysql_num_rows($query);
if($jum > 0){
while($data_query = mysql_fetch_array($query)){
 //Tampilkan data yang ada
 echo "$data_query[nomor]. $data_query[nama], $data_query[alamat] <br/>";
}
}else{
 echo "Belum ada Data apapun pada database";
}
 echo "<a href='form.php'>Tambahkan data baru >></a>";
 exit;
?>

Untuk mempersingkat waktu, silahkan anda test kode dibawah ini, yang saya jadikan satu untuk semua ide diatas kedalam file index.php, silahkan jalankan pada Server Lokal di komputer anda, tapi sebelumnya komputer harus sudah menjadi Web Server terlebih dahulu, silahkan gunakan LocalServer, download Disini >>

File index.php

<?php
$connect = mysql_connect("localhost:3308","root","1234");
mysql_select_db("namadatabase", $connect);
?>
<html>
<head>
<title>
Tes membuat nomor urut pada database MySQL</title>
</head>
<body>

<?php
$query = mysql_query("SELECT * FROM namatable ORDER BY nomor");
while($data_query = mysql_fetch_array($query)){
 echo "$data_query[nomor]. $data_query[nama], $data_query[alamat] <br/>";
}
if(isset($_POST[submit])){
$q = mysql_query("SELECT * FROM namatable ORDER BY nomor DESC LIMIT 1");
$jumlah = mysql_num_rows($q);
$data = mysql_fetch_array($q);
if($jumlah <= 0){
 $nomorbaru = 1;
 }else{
 $nomorbaru = $data[nomor] + 1;
 }
if($_POST[nama] == ""){echo "Nama jangan dokosongkan...";}
else if($_POST[alamat] == ""){echo "Alamat jangan dikosongkan...";}
else{
mysql_query("INSERT INTO namatable (nomor, nama, alamat) VALUES ('$nomorbaru','$_POST[nama]','$_POST[alamat]')");
echo "<b>Data baru telah ditambahkan, Silahkan Tunggu...</b>";
echo "<script>window.location = 'index.php';</script>";
}
}else{
?>
<h2>Masukan Data Baru!</h2>
<table>
<form name="insert" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr><td style="float:right;">Nama: </td><td><input type="text" name="nama" /></td></tr>
<tr><td style="float:right;">Alamat: </td><td><input type="text" name="alamat" /></td></tr>
<tr><td colspan="2"><input type="submit" name="submit" value="Kirim" style="float:right;" /></td></tr>
</form>
</table>
</body>
</html>

<?php
}
exit;
?>

IKLAN

ScreenShoot:

Tampilan exekusi file index.php pada Browser FireFox


Terimakasih sudah menyimak artikel ini, semoga dapat berguna bagi anda yang sedang belajar menganai php dan MySQL Server, silahkan berikan tanggapan nya mengenai tutorial di atas pada form komentar yang telah disediakan. Wassalam...

Posting Komentar

14 Komentar

  1. ada yg bisa bantu melesaikan web php saya ??

    BalasHapus
  2. Artikelnya sangat membantu saya gan.
    Terima Kasih atas share nya.... Semoga Sukses Selalu....

    From :
    Abu Syafiiq

    BalasHapus
  3. Mas saya mau membuat web tapi agaknya memang sedikit ribet, apa itu php, MSQL, javascrip, dll.
    Tolong saya di bantu untuk menimba ilmu guna mempelajari web, terimakasih

    BalasHapus
  4. Balasan
    1. Tinggal ganti bag ini:

      if($jumlah <= 0){
      $nomorbaru = 1;
      }


      Menjadi:

      if($jumlah <= 0){
      $nomorbaru = 0;
      }


      Tks...

      Hapus
  5. Bagus kang, artikelnya, singkat jelas padat..

    Cuman kalo boleh ana kasih masukan, pas bagian:
    else{
    $nomorbaru = $data[nomor] + 1;
    }

    itu dikasih tanda petik '', jadi:
    else{
    $nomorbaru = $data['nomor'] + 1;
    }

    Soalnya, kalo gak dikasih itu, iya sih datanya masuk, tapi nanti bakal dapet Notice "Notice: Use of undefined constant id - assumed 'id'".

    Thanks, Correct me if im wrong.

    BalasHapus
    Balasan
    1. iya kang,, betul se x,,
      krn kode di atas hanya support untk php versi 5.2 ke bawah sj, jika menggunakan php versi 5.3 ke atas akan ada peringatan seperti itu,,

      solusi nya rubah kode pada artikel di atas sperti yg kang M.Faisal bilang, atau tulis kode error_reporting(0); di atas baris kode di atas,, atau gunakan php versi lama yaitu v.5.2.x ke bawah sj,,

      tks sdh berkunjung dan telah memberikan masukan yg sangat berguna bagi para pembaca lain ny,,

      smg brguna,,

      Hapus
  6. Kang,supaya nomer urutnya kembali lagi ke angka 1 gimana? misalkan gini kita sudah memasukan 5 data ,nah kemudian sama saya di hapus semua datanya dari 1-5,kemudian pas saya inputin lagi data nya malah dari angka 6 bukan dari angka 1, gimana ya kang solusinya.terima kasih

    BalasHapus
  7. saya mau bertanya kalau setiap user berbeda halaman

    BalasHapus
    Balasan
    1. Silahkan baca artikel ini:

      https://blog.kangujang.com/2012/12/membuat-sistem-login-multi-user-menggunakan-cookie.html

      Tks.

      Hapus