Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Menyesuaikan Format Tanggal pada Data yang Diimport di PHPMaker 2021
Tiga Pilihan untuk Menyimpan Password di Aplikasi Web dari PHPMaker 2021
Mudahnya Menambahkan Custom Validation di Sisi Client pada PHPMaker 2021

Menyesuaikan Format Tanggal pada Data yang Diimport di PHPMaker 2021

Jum, 23 Oktober 2020 oleh Masino Sinaga 4 Komentar

Apakah Anda pernah mengalami kesulitan saat mengimport data dari file .csv di aplikasi web yang dihasilkan oleh PHPMaker? Saat proses import data, muncul pesan error “Invalid field value”, dan semua data gagal total di-import. Setelah dicek ulang, ternyata nilai pada field yang tidak valid tersebut adalah data tanggal.

Pernah mengalami kejadian tersebut? Lalu apa yang Anda lakukan? Bingung, lalu menyerah begitu saja? Hmmm… sebaiknya jangan, karena kita akan menemukan solusinya melalui tulisan ini.

Supaya lebih mudah dipahami, saya akan mencoba menerangkan melalui sebuah contoh yang sederhana. Katakanlah Anda memiliki struktur table sebagai berikut di database MySQL:

CREATE TABLE `test_import` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `My_Date` date NOT NULL,
  `Description` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

Lalu Anda ingin data di tabel test_import tersebut tidak dientri satu per satu, melainkan melalui proses import data. Karena PHPMaker sudah memiliki fitur Import Data, maka kita tinggal mengaktifkan pilihan Import dari Table setup -> List Page dari dalam project PHPMaker.

Selanjutnya, Anda sudah mempunyai data dalam sebuah file data_import.csv yang isinya sebagai berikut:

"My_Date", "Description"
"22/10/2020", "One"
"23/10/2020", "Two"
"24/10/2020", "Three"
"25/10/2020", "Four"
"26/10/2020", "Five"
"27/10/2020", "Six"
"28/10/2020", "Seven"

Perhatikanlah kembali data di file .csv tadi. Apa kesimpulannya setelah Anda melihat data di field My_Date? Yes, betul… jika Anda menjawab bahwa formatnya adalah dd/mm/yyyy.

Nah, inilah penyebab mengapa error di atas terjadi. Format data yang akan di-import tidak sama dengan format tanggal default di database MySQL yaitu yyyy-mm-dd. Lantas bagaimana dong solusinya?

Hehe… tenang… tenang… hal ini bisa diatasi dengan sangat mudah dan cepat, jika Anda menggunakan PHPMaker 2021, yaitu versi terakhir saat artikel ini saya buat.

PHPMaker sudah menyedikan sebuah server event bernama Row_Import milik dari List Page. Server Event ini dieksekusi sebelum sebuah record di-import. Ada dua argumen dalam server event ini. Argumen pertama adalah $row, yaitu array data yang akan di-import. Sedangkan argumen kedua adalah $cnt, merupakan nilai Integer yang mengandung jumlah record yang akan di-import.

Secara standar, server event ini mengembalikan nilai true. Jika kita ingin mengabaikan proses import, maka cukup dengan mengembalikan nilai false. Tapi bukan itu yang akan kita bahas di sini.

Kembali kepada persoalan di atas. Kita dapat menggunakan server event Row_Import untuk mengubah atau menyesuaikan format tanggal data yang akan di-import, supaya sama dengan format yyyy-mm-dd. Caranya bagaimana?

Cukup dengan menulis sedikit kode PHP berikut pada server event tersebut:

	$dTanggal = $row["My_Date"];  // tampung dulu ke variabel $dTanggal
	$sTanggal = str_replace('/', '-', $dTanggal); // ganti separator "/" dengan "-", lalu tampung ke $sTanggal
	$row["My_Date"] = date('Y-m-d', strtotime($sTanggal)); // ubah format tanggal menjadi yyyy-mm-dd, lalu proses!

Hanya dengan 3 baris kode PHP itu saja, maka permasalahan di atas sudah bisa kita atasi dengan sangat mudah dan cepat. Tidak perlu menulis kode sampai ratusan atau ribuan baris untuk menciptakan fitur Import Data.

Selengkapnya kode di dalam server event Row_Import tadi seharusnya seperti ini:

// Row Import event
function Row_Import(&$row, $cnt)
{
    //Log($cnt); // Import record count
    //var_dump($row); // Import row
    //return false; // Return false to skip import

    $dTanggal = $row["My_Date"];  // tampung dulu ke variabel $dTanggal
    $sTanggal = str_replace('/', '-', $dTanggal); // ganti separator "/" dengan "-", lalu tampung ke $sTanggal
    $row["My_Date"] = date('Y-m-d', strtotime($sTanggal)); // ubah format tanggal menjadi yyyy-mm-dd, lalu proses!
	
    return true;
}

O iya, jangan lupa generate ulang semua file script seperti biasa, lalu cobalah lagi sekarang meng-import data melalui aplikasi web yang sudah di-generate tadi.

Seharusnya sekarang sudah tidak error lagi. Semua data berhasil di-import, yang ditandai dengan pesan: Imported 7 of 7 records from data_import.csv successfully.

Luar biasa memang fleksibelnya PHPMaker!

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Import Data, PHPMaker 2021, PHPMaker Indonesia, 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.

Tiga Pilihan untuk Menyimpan Password di Aplikasi Web dari PHPMaker 2021
Mudahnya Menambahkan Custom Validation di Sisi Client pada PHPMaker 2021

Komentar

  1. adji mengatakan

    Kam, 19 Desember 2024 pada 11:56 am

    hallo pak masino.
    mohon bantuanya pak. tabel saya kalo saya pake extension search date between. muncul error 406 di web nya. padahal kalo jalan di localhost ndk ada masalah. kira2 apa nya yah pak??

    Balas
    • Masino Sinaga mengatakan

      Kam, 19 Desember 2024 pada 2:57 pm

      Error 406 atau error 404? Kalau error 404 itu artinya ada file-file tertentu yang tidak ditemukan di server production. Biasanya karena lupa upload, karena di localhost dicoba tidak ada masalah kan ya?

      Balas
      • adji mengatakan

        Jum, 20 Desember 2024 pada 11:01 am

        bener pak, solusi pertama mungkin generate ulang dan reupload lg yah pak?

        Balas
        • Masino Sinaga mengatakan

          Jum, 20 Desember 2024 pada 11:22 am

          Betul. Cara paling aman seperti itu. Generate ulang semua file script tanpa kecuali, lalu re-upload semua file script lagi tanpa kecuali juga.

          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

  • Masino Extensions for PHPMaker 2025 Now Changed!
  • Begini Mudahnya Mengurangi Lebar Combobox pada PHPMaker 2025
  • 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

Menu

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

Komentar Terbaru

  • Charly pada PHPMaker: PHP Code Generator + PHP Framework
  • Masino Sinaga pada PHPMaker: PHP Code Generator + PHP Framework
  • Masino Sinaga pada PHPMaker: PHP Code Generator + PHP Framework
  • Charly pada PHPMaker: PHP Code Generator + PHP Framework
  • Charly pada PHPMaker: PHP Code Generator + PHP Framework

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