Sebagai Web Developer, kita pasti pernah ingin mendapatkan ID dari Record yang terakhir ditambahkan di suatu table pada Aplikasi Web yang kita hasilkan. Apalagi jika ID tersebut nilainya bertambah secara otomatis atau auto-increment, dan ada relatif banyak Pengguna yang menambahkan data secara bersamaan. Tentu besar kemungkinan ID yang terakhir adalah ID milik Record yang terakhir ditambahkan oleh Pengguna lainnya.
Percaya atau tidak, jika Anda membangun Aplikasi Web dengan menggunakan PHPMaker, maka hal ini bisa diatasi dengan sangat mudah, cepat, dan lagi-lagi: menyenangkan! Mengapa?
Alasan Pertama, karena PHPMaker sudah menyediakan server event Row_Inserted yang akan dipanggil setelah sebuah Record berhasil ditambahkan ke Database. Dengan menggunakan server event ini, maka kita bisa mengoptimalkan variabel $rsnew untuk mendapatkan nilai ID dari Record yang terakhir ditambahkan di table yang bertalian.
Katakanlah di table suppliers terdapat field SupplierID yang tipenya Integer dan Auto Increment. Untuk mengetahui ID terakhir, maka kita cukup menaruh kode berikut ke server event tadi, sehingga kode selengkapnya menjadi:
// Row Inserted event function Row_Inserted($rsold, &$rsnew) { //echo "Row Inserted" $this->setSuccessMessage("ID Terakhir: ".$rsnew["SupplierID"]); }
Alasan Kedua, karena PHPMaker menggunakan library ADODB, dan ADODB sudah menyediakan sebuah method yang akan mengembalikan nilai ID dari Record yang terakhir ditambahkan dengan mengoptimalkan object Connection miliknya. Nama method itu adalah Insert_ID.
Method ini sangat terasa sekali manfaatnya jika kita mengeksekusi SQL INSERT INTO secara langsung menggunakan object Connection milik ADODB, sehingga kita tidak bisa mengandalkan server event di atas tadi, seperti yang ditunjukkan pada kode berikut:
global $conn; $conn->Execute("INSERT INTO Tabelku VALUES (0, 'Deskripsi tertentu')");
Nah, untuk mengetahui ID dari Record yang terakhir dimasukkan itu, maka kita cukup menggunakan kode berikut:
$this->setSuccessMessage("ID yang terakhir adalah: " . $conn->Insert_ID());
Sebagai informasi, kedua cara di atas sudah berhasil saya buktikan dengan menggunakan database MySQL pada PHPMaker versi 11.0.6.
Betapa mudahnya, bukan? 😀
malam pak, bapak tau cara penjumlahan/pengurangan tgl & jam?
misalkan
field masuk : 07/06/2015 19:38:17
field keluar : 07/06/2015 21:12:10
jam = keluar – masuk
saya coba2 hasilnya tetap 0
kalau misalkan :
field masuk : 07/06/2015 19:38:17
field keluar : 08/06/2015 21:12:10
baru ada hasilnya tapi tetap 1 (tgl saja)
ada caranya pak? terimakasih.
Anda menggunakan function apa untuk menghitung selisihnya?
Kalau kode seperti itu memang hanya untuk menghitung selisih hari dari dua buah tanggal. Lalu Anda menginginkan hasilnya seperti apa?
begini pak, misalkan :
tgl awal adalah 18-06-2015 09:00:00
tgl akhir adalah 19-06-2015 18:30:00
jadi akhir – awal = 1 hari 03.30 jam
maaf, jadi akhir – awal = 1 hari 09.30 jam
Google ini: calculate difference between two dates in jquery.
Pak Masino, dulu saya Pernah coba Tutorial ini saya implementasikan di Projek yg saya buat (Projek belajar) Pake PHP Maker 11
berhasil, tapi ketika Project PHP Maker 11 saya (copy) dan saya coba buka pake PHP Maker 12, kemudian sy Generate Ulang kok malah ada yg eror ya ?
Fatal error: Call to undefined method cbarang::setSuccessMessage() in C:\xampp\htdocs\app\baranginfo.php on line 8152
kode nya seperti ini
dulu ketika di Generate pake PHP Maker 11 aman2 saja2,
dan setelah saya coba buka kembali File asli Pake PHP Maker 11 masih tetep tidak eror (aman2 saja)
kira2 apa ya Pak, apakah ketika dibuka di Versi 12 ada yg harus di Setting ulang ? atau ada yg harus di rubah di kode nya ?
atau mungkin ada pengaruh tabel/ View yg lain dalam 1 projek ?
terimakasih..
sebagai informasi :
error tersebut terjadi ketika login berhasil, namun ketika diarahkan ke halaman lain (view_baranglist.php) Tidak Error.
dan ketika Logout kembali error seperti diatas (dan tidak bisa logout) session Login masih tersimpan.
Apakah setelah proses tambah data tersebut, user diarahkan ke halaman yang dibuat dengan Custom Files?
setelah proses Tambah User diarahkan ke Form add (masih tetep di Halaman itu)
namun setelah berhasil login User diarahkan ke Custom File (Beranda.php).
anehnya di Form Tambah tabel tersebut tidak eror dan masih tetep bisa menampilkan Succes Message seperti diatas, eror nya hanya setelah Login dan logout.
Solusinya, tambahkan kode berikut ke baris terakhir bagian Content dari Custom Files pada project PHPMaker yang bertalian:
Terimakasih Responnya.
saya sudah coba taruh Script diatas di barris terakhir Custom Files (Beranda.php) tapi masih tetep error Pak, kebetulan utk Custom File nya lebih dari satu apakah harus meletakkan Sript diatas ke semua Custom File ?
tapi setelah saya telusuri ternyata Penyebab error nya adalah di Pengaturan PHP=>General Option=> Audit Trail => Track Login/ Logout aktivites. jika pilihan tersebut di pilih (dicentang) maka kasus error seperti diatas terjadi, tapi jika tidak di centang tidak error.
Iya, di semua Custom Files yang ada di project tersebut.
oke Pak Masino, saya coba dulu terimakasih.
Sama-sama.
Grup | Nomor | Nama
1 1 Duren
1 2 Semangka
1 3 Jeruk
2 1 Cicak
2 2 Burung
3 1 DKI Jakarta
3 2 Jawa Barat
3 3 Jawa Tengah
Pak masino, mau tanya, membuat id auto increment (nomor) by group (grup) seperti contoh diatas di phpmaker, bagaimana caranya, mohon pencerahannya pak. Terima kasih sebelumnya
Prinsipnya sama dengan yang sudah saya bahas di artikel Membuat Kode Otomatis Saat Data Ditambah di Aplikasi Web dari PHPMaker.
Tinggal modifikasi saja perintah SQL SELECT supaya dikelompokkan berdasarkan field Grup.
Tanya lagi Pak Masino, Kalau semacam struk,yang bisa ngepirnt setelah row_inserted bagaimana?
yang saya sudah lakukan
1. membuat mengcostume view menjadi format printer, rencanya langsung new tab setelah row_insert kemudian menggunakan window.print,
Maaf, belum bisa bantu karena belum pernah buat seperti itu. Silahkan Googling aja ya.
Malam pak masino, saya beginer phpmaker, saya ingin membuat database anggota koperasi. saya sudah bikin tabel dengan kolom id ( primary key), nomor anggota, nama lengkap, alamat,tanggal lahir, no telp. Bagaimana cara membuat nomor anggota auto increment / auto generate dengan perpaduan tanggal lahir, kalimat, auto increment? Misalnya saya ingin add anggota baru bernama budi tanggal lahir 1 Januari 1998, Maka nomor anggotanya adalah 19980101KOPERASI0001 ( otomatis terbuat ).
Terima kasih
Salam Sejahtera
Artikel ini semoga bisa membantu: Membuat Kode Otomatis Saat Data Ditambah di Aplikasi Web dari PHPMaker.