Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Begini Mudahnya dan Cepatnya Membuat Fake Delete di PHPMaker 2021
Mudahnya Membuat Fake Delete yang Bisa Multi Record di PHPMaker 2021
Menghilangkan Index Field di ExecuteRow dan ExecuteRows pada PHPMaker 2021

Begini Mudahnya dan Cepatnya Membuat Fake Delete di PHPMaker 2021

Sab, 15 Mei 2021 oleh Masino Sinaga 3 Komentar

Fake Delete sering diartikan dengan Penghapusan Palsu. Dengan kata lain, ketika Pengguna Akhir dari Aplikasi Web menghapus data, maka data tersebut sebenarnya tidak dihapus dari database, tetapi hanya ditandai statusnya sebagai sudah dihapus.

Fitur Fake Delete adalah salah satu fitur yang sering dibutuhkan di dalam suatu Aplikasi Web. Khususnya jika ada ketentuan yang mengharuskan data tidak boleh dihapus secara fisik. Pengguna Akhir hanya tidak dapat melihat data yang sudah ditandai statusnya sebagai sudah dihapus.

Beruntunglah Anda jika membangun Aplikasi Web dengan PHPMaker 2021. Anda dapat menerapkan Fake Delete dengan sangat mudah dan cepat. Anda hanya perlu menambahkan sedikit kode saja ke server event Row_Deleting.

Langsung saja kita membuktikannya bersama-sama dari demo project untuk PHPMaker 2021 yang bisa Anda download file-nya dan coba di localhost.

Langkah Pertama, jalankan perintah SQL di bawah ini, untuk menambahkan sebuah field yang bernama IsDelete pada table models di dalam database yang digunakan project demo tadi:

ALTER TABLE `models` 
ADD COLUMN `IsDelete` enum('0','1') NOT NULL DEFAULT '0' AFTER `Model`

Langkah Kedua, pastikan Anda sudah melakukan sinkronisasi struktur table terbaru tadi dengan project demo, dengan mengklik menu Tools -> Synchronize, lalu tekan Yes atau OK untuk menerima perubahan.

Langkah Ketiga, salin kode berikut ke dalam server event Row_Deleting dari table models tepat sebelum baris return true;, sehingga kode selengkapnya menjadi seperti ini:

// Row Deleting event
function Row_Deleting(&$rs)
{
    // Enter your code here
    // To cancel, set return value to False
    $conn = $this->getConnection();
    $conn->executeUpdate("UPDATE models SET IsDelete = '1' WHERE ID = " . $rs["ID"]);
    $conn->commit();
    $conn->beginTransaction();
    $this->setSuccessMessage(Language()->phrase("DeleteSuccess"));
    $this->terminate("modelslist");
    return false;
    
    return true;
}

Kode di atas mengupdate nilai field IsDelete menjadi 1, yang artinya status datanya menjadi sudah dihapus. Di bawahnya kita menambahkan method commit milik object connection, diikuti dengan memulai transaction dengan method beginTransaction, tampilkan pesan berhasil, lalu redirect Pengguna Akhir ke halaman List dari menu Models, dan yang terakhir jangan lupa untuk mengembalikan nilai false.

Jika return false tidak kita gunakan, maka perintah selanjutnya akan lanjut ke kode return true untuk menghapus data tersebut dari database. Tentu saja kita tidak ingin menghapus data tersebut dari database. Untuk itulah kenapa kita harus menggunakan return false.

Langkah Keempat, tambahkan kode berikut ke dalam server event Page_Load di bawah Delete Page milik table models:

    Language()->setPhrase("DeleteCancelled", "");

Jika kode barusan ini tidak kita tambahkan, maka pesan error yang berisi Delete cancelled akan muncul. Supaya pesan ini tidak muncul, maka kita harus mengeset phrase DeleteCancelled dengan string kosong.

Tentu saja Anda bisa mengembangkan fitur ini dengan tidak menampilkan record yang memiliki nilai 1 pada field IsDelete tadi, dengan menambahkan satu baris kode ini saja ke dalam server event Recordset_Selecting:

    AddFilter($filter, "IsDelete = '0'"); // hanya tampilkan yang IsDelete = '0'

Langkah Kelima, pastikan Anda sudah men-generate semua file script dari PHPMaker 2021. Setelah itu, cobalah untuk menghapus sebuah record di menu List Models, maka Anda akan melihat record yang dihapus tetap ada. Hanya nilai pada field IsDelete saja yang berubah.

Perhatikanlah kembali kode di server event Recordset_Selecting, Row_Deleting, dan Page_Load di atas tadi. Hanya dengan sedikit kode itu saja, kita sudah dapat mengimplementasikan Fake Delete di PHPMaker 2021.

Tidak perlu menulis kode berpuluh-puluh atau beratus-ratus baris hanya untuk menerapkan penghapusan palsu tadi. Selebihnya sudah ditangani oleh PHPMaker, sehingga waktu pengembangan Aplikasi Web menjadi lebih cepat.

Sebagai catatan terakhir, trik ini memiliki keterbatasan, yaitu hanya bisa menghapus per satu record saja. Jika opsi Multiple delete diaktifkan, maka hanya record yang paling pertama terpilih saja yang akan ditandai sebagai sudah dihapus.

Jadi, pastikan sekali lagi Anda tidak mengaktifkan Multiple Delete jika ingin menerapkan Fake Delete ini.

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Fake Delete, PHPMaker 2021, PHPMaker Indonesia, Row_Deleting, Server Events, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Mudahnya Membuat Fake Delete yang Bisa Multi Record di PHPMaker 2021
Menghilangkan Index Field di ExecuteRow dan ExecuteRows pada PHPMaker 2021

Komentar

  1. rimix mengatakan

    Sab, 15 Mei 2021 pada 2:52 pm

    what is the utilities to do that after the query ???
    $conn->commit();
    $conn->beginTransaction();

    and why not

    $conn = $this->getConnection();
    $conn->beginTransaction();
    $conn->executeUpdate(“UPDATE models SET IsDelete = ‘1’ WHERE ID = ” . $rs[“ID”]);
    $conn->commit();

    ?????

    Thanks

    Balas
    • Masino Sinaga mengatakan

      Sab, 15 Mei 2021 pada 4:23 pm

      Because by default, PHPMaker has already performed beginTransaction. Therefore, after query UPDATE, we need to perform commit to execute the UPDATE since we will return false immediately afterwards.

      Since commit will close the transaction, then we need to perform beginTransaction again, in order to avoid error There is no active transaction.

      Balas

Trackbacks

  1. Mudahnya Membuat Fake Delete yang Bisa Multi Record di PHPMaker 2021 – Masino Sinaga berkata:
    Ming, 16 Mei 2021 pukul 10:47 am

    […] Anda di sini: Beranda / PHPMaker / Mudahnya Membuat Fake Delete yang Bisa Multi Record di PHPMaker 2021 Begini Mudahnya dan Cepatnya Membuat Fake Delete di PHPMaker 2021 […]

    Balas

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Mudahnya Mengubah Nilai Delay Auto Hide Success Message di PHPMaker 2025
  • Mudahnya Berpindah Layout dari Table ke Cards di Halaman List lewat PHPMaker 2025
  • Jangan Lupa Pakai AdjustSql Saat Insert atau Update Data Lewat ExecuteStatement
  • File-File yang Wajib Diperhatikan Setelah Menambah Item User Values di PHPMaker 2025
  • Begini Cara Memuat Tables dari Database Secara Dinamis di PHPMaker 2025

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Masino Sinaga pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Nano pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Masino Sinaga pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2025 | WordPress | Catat masuk | Kembali ke atas