Anda di halaman 1dari 5

KampusKita.

us | Pembuatan kode otomatis berdasarkan kriteria tertentu pada PHP tidaklah sulit caraya tidak jauh berbeda dengan yang ada di visual. Penjelasan ini atas request dari bos fazar. Ok kita mulai pada skenarionya.. Dicontohkan anda membuat input barang namun kode barang dibuat secara otomatis (bukan auto increament) berdasarkan jenis barang tertentu. Misalkan AP001, AP002, MK010, MK100 dan seterusnya. Terus caranya gimana ? kan pengambilan datanya dari database !!! Jadi tekniknya adalah anda harus mengambil nilai id terbesar (max) dari suatu record dari database nya. SELECT max(kode_barang) FROM nama_tabel WHERE kode_barang LIKE AP% Setelah mendapatkan nilai terbesar dari field kode_barang misal terakhir data yang ada di tabel nya AP0023. Kok ada kata LIKE AP% artinya apa? coba buka kembali materi SQL nya siapa tahu muncul..statement itu bemaksud cari karakter yang diawali dengan string AP. Sehingga yang muncul diseleksi adalah AP001, APn, dst. nah dari AP001 tersebut nilai yang kita tambahkan tentunya nilai 1 menjadi AP002. Dalam PHP kita mengenal fungsi sprintf() dan substr() yaitu fungsi untuk mengambil dan merubah nilai suatu string. Untuk lebih ringkas berikut contohnya: 1. Buat tabel misal CREATE TABLE member ( id varchar(6), nama varchar(20), alamat text, PRIMARY KEY(id));

2. Buat file member.php

<h1>New Member</h1> <form method=post action=add_member.php> Jenis Member <select name=jenis> <option value=A>Platinum</option> <option value=B>Gold</option> <option value=C>Silver</option> </select> <input type=submit name=submit value=Submit /> </form>

3. Buat file aksi dari file member.php dengan nama file add_member.php <?php // koneksi ke mysql mysql_connect(localhost, root, ); mysql_select_db(dbtrik6); // membaca jenis anggota yang dipilih dari form sebelumnya $jenis = $_POST['jenis']; // membaca kode anggota terbesar berdasarkan jenis keanggotaan $query = SELECT max(id) as maxID FROM member WHERE id LIKE $jenis%; $hasil = mysql_query($query); $data = mysql_fetch_array($hasil); $idMax = $data['maxID']; // mengambil angka atau bilangan dalam kode anggota terbesar, // dengan cara mengambil substring mulai dari karakter ke-1 // diambil 5 karakter, misal A00001, akan diambil 00001 // stlh substring bilangan diambil, di casting jadi integer $noUrut = (int) substr($idMax, 1, 5); // bilangan yang diambil ini ditambah 1 // untuk menentukan nomor urut berikutnya

$noUrut++; // membentuk kode anggota baru // perintah sprintf(%05s, $noUrut); digunakan // untuk memformat string sebanyak 5 karakter // misal sprintf(%05s, 12); maka akan dihasilkan 00012 // misal sprintf(%05s, 1); akan dihasilkan string 00001 $newID = $jenis . sprintf(%05s, $noUrut); // kode anggota yang baru tersebut nanti akan ditampilkan // dalam komponen text box ?> <h1>Tambah Member Baru</h1> <form method=post action=submit_member.php> <table border=0> <tr><td>ID Member</td><td>:</td> <td><input type=text name=id value=<?php echo $newID; ?>></td></tr> <tr><td>Nama Member</td><td>:</td> <td><input type=text name=nama></td></tr> <tr><td>Alamat Member</td><td>:</td> <td><input type=text name=alamat></td></tr> <tr><td></td><td></td><td> <input type=submit name=submit value=Submit></td></tr> </table> </form> 3. Buat file proses untuk file add_member.php dengan nama submit_member.php <?php mysql_connect(localhost, root, ); mysql_select_db(dbtrik6); $idMember = $_POST['id']; $namaMember = $_POST['nama']; $alamatMember = $_POST['alamat'];

$query = INSERT INTO member VALUES($idMember, $namaMember, $alamatMember); $hasil = mysql_query($query); if ($hasil) echo <h1>Tambah member sukses</h1>; else echo <h1>Tambah member gagal</h1>; echo <a href=member.php>Tambah Member</a>; ?>

( ?php function kdauto($tabel, $inisial){ $struktu r = mysql_query("SELECT * FROM $tabel order by no_reg"); $field = mysql_field_name($struktu r,0); $panjang = mysql_field_len($struktur,0); $qry = mysql_query("SELECT max(".$fi eld.") 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"; } retu rn $inisial.$tmp.$angka; } ? ) cara pakai: input name="no_reg" type="text" value="( ?=kdauto(daftar,B)? )" size="20" maxlength="15" readonly/

( ? ganti dg <?

Anda mungkin juga menyukai