Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Mengelola Data yang Melibatkan Lebih Satu Table Melalui PHPMaker
Mudahnya Menentukan Field Mandatory pada Kriteria Pencarian dari PHPMaker
Mudahnya Menyembunyikan Item Details di Record Master dari PHPMaker

Mudahnya Mengelola Data yang Melibatkan Lebih Satu Table Melalui PHPMaker

Sen, 24 November 2014 oleh Masino Sinaga 66 Komentar

Sering kali Web Developer harus melibatkan lebih dari satu Table di Database untuk mengelola (Tambah, Ubah, dan Hapus) data karena adanya kebutuhan menampilkan informasi pendukung dari Table terkait lainnya. Biasanya, untuk mengimplementasikan kebutuhan ini, maka Web Developer akan membuat sebuah View di dalam Database (Database View) yang melibatkan beberapa Table yang terkait tadi, lalu menggunakan Database View tersebut sebagai object untuk memodifikasi Data.

Sayangnya, ketika Database View tadi digunakan sebagai object untuk langsung mengelola data, maka sistem Database akan mengembalikan sebuah pesan error yang kira-kira isinya menyebutkan, bahwa tidak diijinkan memodifikasi data yang terdiri dari lebih satu Table melalui sebuah Database View yang mengandung JOIN.

Contoh pesan error tersebut adalah seperti ini:

Failed to execute SQL. Error: Can not modify more than one base table through a join view '<View_Name>'

Pernah mengalami hal seperti itu? Lalu apa yang Anda lakukan? Menyerah begitu saja? Hm…

Kini Anda tidak perlu khawatir lagi! Karena Aplikasi Web yang dibangun dengan menggunakan PHPMaker dapat mengatasi permasalahan klasik ini dengan sangat mudah, cepat, dan lagi-lagi menyenangkan! PHPMaker ternyata sudah lama mengantisipasi kondisi tadi, dan yang paling penting adalah: sekaligus memberikan solusinya.

Artinya, Web Developer dapat menentukan hanya sebuah Table utama yang sebenarnya terlibat dalam pengelolaan data tadi. Selain itu, PHPMaker juga memberikan keleluasaan kepada Web Developer untuk mengeluarkan (exclude) Field-Field mana saja yang tidak diperlukan untuk pengelolaan data tersebut dari Database View. Karena sekalipun Database View itu melibatkan lebih dari satu Table, sebenarnya hanya satu Table saja yang digunakan untuk pengelolaan data.

Sampai di sini saya berharap semua penjelasan di atas dapat dipahami. Supaya semakin jelas, mari kita melihat contoh kasus di bawah ini.

Katakanlah kita memiliki dua buah Table di dalam sebuah Database yang masing-masing bernama barang dan jual_barang, dengan struktur dan data sebagai berikut:

-- ----------------------------
-- Table structure for barang
-- ----------------------------
DROP TABLE IF EXISTS `barang`;
CREATE TABLE `barang` (
  `Kode_Barang` char(3) NOT NULL,
  `Nama_Barang` varchar(50) DEFAULT NULL,
  `Harga` int(11) DEFAULT NULL,
  PRIMARY KEY (`Kode_Barang`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of barang
-- ----------------------------
INSERT INTO `barang` VALUES ('001', 'Barang Pertama', '1000');
INSERT INTO `barang` VALUES ('002', 'Barang Kedua', '2000');
INSERT INTO `barang` VALUES ('003', 'Barang Ketiga', '3000');

-- ----------------------------
-- Table structure for jual_barang
-- ----------------------------
DROP TABLE IF EXISTS `jual_barang`;
CREATE TABLE `jual_barang` (
  `Kode_Jual` char(3) NOT NULL,
  `Kode_Barang` char(3) NOT NULL,
  `Jumlah_Beli` int(11) DEFAULT NULL,
  `Total_Beli` int(11) DEFAULT NULL,
  PRIMARY KEY (`Kode_Jual`,`Kode_Barang`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of jual_barang
-- ----------------------------
INSERT INTO `jual_barang` VALUES ('001', '001', '12', '12000');
INSERT INTO `jual_barang` VALUES ('002', '001', '3', '3000');
INSERT INTO `jual_barang` VALUES ('003', '002', '4', '8000');
INSERT INTO `jual_barang` VALUES ('004', '003', '4', '12000');

Karena ada kebutuhan di Aplikasi Web yang akan dibangun menggunakan kedua Table tadi untuk menginput data transaksi penjualan barang, maka kita harus membuat sebuah Database View yang bernama transaksi_jual_barang dengan struktur View sebagai berikut:

CREATE VIEW `transaksi_jual_barang` AS SELECT
jual_barang.Kode_Jual,
barang.Kode_Barang,
barang.Nama_Barang,
barang.Harga,
jual_barang.Jumlah_Beli,
jual_barang.Total_Beli
FROM barang
INNER JOIN jual_barang ON barang.Kode_Barang = jual_barang.Kode_Barang

Perhatikanlah sintaks DDL (Data Definition Language) dari Database View tersebut. Kita melibatkan kedua tabel barang dan jual_barang tadi. Mungkin Anda bertanya, mengapa? Karena di form untuk menambah dan mengubah (Add dan Edit) data, kita akan mengimplementasikan sebuah business-logic yang melibatkan kedua Table tadi.

Lengkapnya business-logic tersebut adalah seperti ini. Ketika Pengguna memilih Kode_Barang, maka field Nama_Barang dan Harga yang berada di bawahnya pada form Add dan Edit akan otomatis terisi nilai-nya dengan data yang terkait dari Table barang. Kemudian, Pengguna memasukkan data jumlah satuan yang dibeli pada field Jumlah_Beli, lalu di field Total_Beli akan terisi dengan nilai hasil perkalian dari field Harga dan Jumlah_Beli.

Dari semua penjelasan di atas barusan, dapat kita simpulkan, bahwa satu-satunya tabel yang terlibat dalam pengelolaan data penjualan barang tersebut adalah hanya Table jual_barang. Selain itu, karena kita sudah menentukan bahwa Table yang hanya terlibat adalah jual_barang, maka Field-field yang tidak terkait dengan Table tersebut harus kita keluarkan (exclude) dari proses penambahan, pengubahan, maupun penghapusan data.

Nah, untuk mengimplementasikan semua itu, maka kita cukup menggunakan server event Row_Inserting, Row_Updating, dan Row_Deleting milik Database View yang bernama transaksi_jual_barang di dalam project PHPMaker Anda. Masing-masing kode dari ketiga server event itu adalah sebagai berikut:
Row_Inserting:

// Row Inserting event
function Row_Inserting($rsold, &$rsnew) {
	// Enter your code here
	// To cancel, set return value to FALSE
	$this->UpdateTable = "jual_barang";
	unset($rsnew["Nama_Barang"]);
	unset($rsnew["Harga"]);
	
	return TRUE;
}

Row_Updating:

// Row Updating event
function Row_Updating($rsold, &$rsnew) {
	// Enter your code here
	// To cancel, set return value to FALSE
	$this->UpdateTable = "jual_barang";
	unset($rsnew["Nama_Barang"]);
	unset($rsnew["Harga"]);
	
	return TRUE;
}

Row_Deleting:

// Row Deleting event
function Row_Deleting(&$rs) {
	// Enter your code here
	// To cancel, set return value to False
	$this->UpdateTable = "jual_barang";
	unset($rs["Nama_Barang"]);
	unset($rs["Harga"]);
	
	return TRUE;
}

Inti dari ketiga kode pada ketiga server event tadi adalah, kita menggunakan property UpdateTable milik class Table/Page untuk menentukan satu-satunya Table yang terlibat dengan pengelolaan data, yaitu jual_barang. Kemudian, kita juga meng-exclude-kan atau mengeluarkan dua buah Field yang tidak terkait dengan Table jual_barang tadi, yaitu masing-masing Nama_Barang dan Harga.

Sampai di sini kita sudah berhasil menambahkan sedikit kode saja untuk proses penambahan, pengubahan, dan penghapusan data transaksi penjualan barang.

Lalu bagaimana dengan kebutuhan untuk menampilkan hasil perhitungan di field Total_Beli ketika Pengguna memasukkan data di field Jumlah_Beli saat Pengguna menambah atau mengubah data?

Jawabannya, Anda cukup memasukkan hanya sedikit kode berikut ke dalam bagian Startup Script yang masing-masing berada di bawah Client Scripts -> Table-Specific -> Add/Copy Page dan Client Scripts -> Table-Specific -> Edit Page:

$(document).ready(function() {
	$("#x_Jumlah_Beli").keyup(function () {
	   $("#x_Total_Beli").val($("#x_Harga").val() * $("#x_Jumlah_Beli").val());   
	});
	$("#x_Harga").change(function () {
	   $("#x_Total_Beli").val($("#x_Harga").val() * $("#x_Jumlah_Beli").val());   
	});
});

Oke, sampai di sini, kita sudah berhasil menambahkan hanya sedikit kode saja ke bagian Server Events dan Client Scripts.

Selebihnya, kita perlu mengeset beberapa item pengaturan yang terdapat di bawah tab Fields dari Database View transaksi_jual_barang untuk mengimplementasikan fitur Auto-fill.

Artinya, ketika Pengguna memilih salah satu Kode_Barang, maka field Nama_Barang dan Harga yang terdapat di bawahnya akan otomatis terisi sesuai dengan data Kode_Barang yang terpilih tadi.

Silahkan ikuti langkah-langkah berikut:

  1. Pastikan object View transaksi_jual_barang yang terdapat di panel Database pada project PHPMaker Anda sudah terpilih, lalu pastikan tab Fields yang terdapat di panel sebelah kananya sudah terpilih.
  2. Klik field Kode_Barang, lalu pastikan Anda melihat panel Edit Tag di bagian bawah.
  3. Di panel Edit Tag, pilih Select yang artinya kita akan mengubah dari control TextBox menjadi ComboBox, lalu klik property Use lookup table.
  4. Selanjutnya di sebelah kanannya muncul panel Lookup Table. Di bagian Table name pilih barang, di bagian Link field pilih Kode_Barang, di bagian Display field #1 pilih Kode_Barang.
  5. Masih dari panel Lookup Table tadi, aktifkan Auto fill, dengan cara memilih True, lalu klik tombol di sebelah kanannya yang bertuliskan … (titik tiga kali).
  6. Selanjutnya muncul jendela popup yang bernama Select Fields to Auto-Fill, di kolom Source Field (Lookup Table – barang), pilih Nama_Barang untuk target field Nama_Barang, demikian juga pilih Harga untuk target field Harga, lalu terkahir klik tombol OK.

Setelah semua itu selesai Anda lakukan, maka sekarang generate ulang semua file script menggunakan PHPMaker seperti biasa, dan seperti biasa, selamat menikmati hasilnya, hehehe… 🙂

Wow, betapa mudah dan cepatnya bukan untuk mengelola data yang melibatkan lebih dari satu Table di Aplikasi Web yang dihasilkan oleh PHPMaker? Perhatikanlah juga kode di atas tadi. Hanya sedikit saja kode PHP dan jQuery yang perlu kita tambahkan. Selebihnya untuk urusan teknis lainnya kita serahkan kepada PHPMaker. Waktu development pun bisa menjadi dihemat secara signifikan. Keren, ‘kan?

Belum ada satupun tools sejenis yang dapat menyamai kehebatan dan fleksibilitas yang disediakan oleh PHPMaker. Bayangkanlah, bahwa betapa hebat dan fleksibelnya PHPMaker menyediakan kerangka kerja yang demikian rapinya untuk mengimplementasikan business-logic pengelolaan data yang melibatkan lebih dari satu Table! 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Client Scripts, PHPMaker Indonesia, Row_Deleting, Row_Inserting, Row_Updating, Server Events, Server Events and Client Scripts, Startup Script, Tutorial PHPMaker, UpdateTable

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 Menentukan Field Mandatory pada Kriteria Pencarian dari PHPMaker
Mudahnya Menyembunyikan Item Details di Record Master dari PHPMaker

Komentar

  1. Rijal mengatakan

    Ming, 30 November 2014 pada 8:58 pm

    siiip Bang Masino, sdh di coba dan berjalan sperti yg diharapkan.
    hehe…

    Balas
    • Masino Sinaga mengatakan

      Sen, 1 Desember 2014 pada 10:24 am

      Baiklah kalau begitu. 😉

      Balas
  2. Rijal mengatakan

    Rab, 3 Desember 2014 pada 10:46 pm

    Bang Masino, Mau tanya di fitur Report apakah memang gak ada fasilitas utk Filter data ,
    jadi sebelum tampil halaman cetak (Report) muncul form Pencarian dulu, misalnya saya akan menampilkan Report/ halaman Cetak per Kode, sperti contoh di bawah ini :

    Kode Jual : 101
    Tangggal Cetak : 03/05/2014
    ====================================================
    Kode Barang I Nama Barang I Harga I Jumlah_Beli I Total I
    ….. ……. …… ……. …….
    ….. ……. …… ……. ……..

    Total :

    Balas
    • Masino Sinaga mengatakan

      Kam, 4 Desember 2014 pada 8:40 am

      Betul. Report di PHPMaker tidak memiliki fitur Pencarian/Filter. Anda harus menggunakan PHP Report Maker untuk membuat report yang memiliki fitur tersebut.

      Balas
      • Rijal mengatakan

        Kam, 4 Desember 2014 pada 8:04 pm

        O gitu ya.
        padahal cetak halaman/ report per Kode sangat penting dlm pengembangan aplikasi web. misal cetak Faktur penjualan, cetak ‘hasil’ registrasi online, Cetak Surat Menyurat. dll

        apakah mmungkinkan jika memaksimalkan halaman View utk menampilkan report (halaman cetak) per kode/ ID yg dimodifikasi (edit manual) sesuai kebutuhan, misalnya menampilkan halaman Seperti contoh diatas.
        atau mungkin harus buat Custom File untuk menghasilkan Format ‘Halaman Cetak’ sesuai dengan kebutuhan.

        Mohon Sarannya, trimakasih.

        Balas
        • Masino Sinaga mengatakan

          Jum, 5 Desember 2014 pada 8:12 am

          Saran saya sebaiknya menggunakan Custom File untuk membuat format halaman cetak, di mana halaman ini dapat menerima parameter dari halaman yang sudah di-generate oleh PHPMaker melalui penggunaan server event.

          Balas
  3. hendi mengatakan

    Sen, 8 Desember 2014 pada 5:56 pm

    tanya, apa bisa phpmaker ini membuat shopingcart juga? ada contohnya pak? tks

    Balas
    • Masino Sinaga mengatakan

      Sen, 8 Desember 2014 pada 5:58 pm

      Untuk Shoping Cart, Anda bisa menggunakan PayPal Shop Maker. Selengkapnya klik link ini: http://www.hkvstore.com/paypalshopmaker/

      Balas
      • hendi mengatakan

        Sen, 8 Desember 2014 pada 7:22 pm

        kalau membuat di phpmaker dg cara “diakal2in” link antar table dg add-edit form beli supaya “agak2 mirip’ shopping cart apa bisa itu pak? tks

        Balas
        • Masino Sinaga mengatakan

          Sel, 9 Desember 2014 pada 8:31 am

          Bisa saja, tapi Anda harus mengkostumisasi sendiri file template yang digunakan oleh PHPMaker.

          Balas
  4. Rijal mengatakan

    Jum, 26 Desember 2014 pada 10:51 am

    Pak Masino, saya coba menambahkan field ‘Jenis_Barang’ di Tabel Barang.
    lalu saya tampilkan di Form view transaksi_jual_barang, utk auto Fill nya sdh berhasil ditampilkan seperti Nama_Barang & Harga.
    Namun ketika di insert ke Database kok muncul pesan ini :
    Failed to execute SQL. Error: Unknown column ‘Jenis_Barang’ in ‘field list’

    Logika nya kan tinggal menambahkan ‘Jenis_Barang’ sperti kode ini :

    // Row Inserting event
    function Row_Inserting($rsold, &$rsnew) {
    // Enter your code here
    // To cancel, set return value to FALSE
    $this->UpdateTable = “jual_barang”;
    unset($rsnew[“Nama_Barang”]);
    unset($rsnew[“Harga”]);
    unset($rsnew[“Jenis_Barang”]); // ini Kode yg saya tambahkan
    return TRUE;
    }

    tapi kok malah error ya, kira2 apa Penyebabnya ?
    Terimakasih

    Balas
    • Masino Sinaga mengatakan

      Jum, 26 Desember 2014 pada 1:07 pm

      Pastikan Anda sudah melakukan sinkronisasi ke Database dari menu Tools -> Synchronize.

      Balas
      • Rijal mengatakan

        Sab, 27 Desember 2014 pada 9:04 am

        Sudah di Synchronize Pak Masino, masih ttp error. kok aneh ya ?
        Ketika Field tambahan tsb coba sy hapus kembali normal (tidak error).

        Balas
        • Masino Sinaga mengatakan

          Sab, 27 Desember 2014 pada 11:44 am

          Error tetap terjadi jika di View tersebut tidak ditambahkan field yang baru tadi.

          Balas
          • Rijal mengatakan

            Sab, 27 Desember 2014 pada 2:59 pm

            Oooh Maaf Pak Masino, ternyata sy salah ketik, kesalahannya disini :
            unset($rs[“Jenis_Barang”]);
            seharusnya :
            unset($rsnew[“Jenis_Barang”]);

            yg Koment atas sdh benar karna sy langsung copy paste dari artikelnya.
            Trimakasih banyak atas Responnya Pak.

            Balas
            • Masino Sinaga mengatakan

              Sen, 29 Desember 2014 pada 9:27 am

              Sama-sama. 🙂

              Balas
  5. Bonivasius mengatakan

    Sen, 29 Juni 2015 pada 8:27 am

    Mas masino mau nanya untuk artikel shopping cart cara menyambungkan ke database dan dapat berjalan di website yang kita buat gimana caranya ya mas ?? maaf saya masih newbie soalnya.

    Balas
    • Masino Sinaga mengatakan

      Sen, 29 Juni 2015 pada 10:37 am

      Shopping cart? Hubungannya apa ya dengan artikel di atas?

      Balas
  6. Ryuki mengatakan

    Rab, 19 Agustus 2015 pada 4:40 pm

    Thank you bang. Baca & praktek artikel yg ini sedikit banyak ada hubunganya sama prjoect yg aku tanyain kemarin. Jadi paham sinkronisasi field antar table

    Balas
    • Masino Sinaga mengatakan

      Rab, 19 Agustus 2015 pada 5:34 pm

      Sama-sama.

      Balas
      • Ryuki mengatakan

        Kam, 20 Agustus 2015 pada 4:03 pm

        Maaf bang tanya yg basic banget. Baru mulai belajar phpmaker dr awal :D.
        1. Bgmna caranya menampilkan 2 field dalam satu Kolom Hasil. haruskah edit htmlnya atau bgmana
        2. Form input Add Data agar bisa berdampingan kanan kiri, bukan selalu atas bawah. Apa itu hrs edit htmlnya jg?

        trims

        Balas
        • Masino Sinaga mengatakan

          Kam, 20 Agustus 2015 pada 9:42 pm

          1. Bisa dengan menggunakan server event Row_Rendered, bisa dengan menggunakan server event ListOptions_Load dan ListOptions_Rendered. Mau tau bedanya? Baca menu Help PHPMaker pada topik Server Events and Client Scripts.

          2. Tidak. Anda cukup hanya menggunakan fitur Custom Templates dari dalam project PHPMaker. Baca juga topik ini dari menu Help PHPMaker.

          Balas
        • Ryuki mengatakan

          Sen, 24 Agustus 2015 pada 10:30 am

          Ok trims bang

          Balas
          • Masino Sinaga mengatakan

            Sen, 24 Agustus 2015 pada 2:48 pm

            Sama-sama.

            Balas
            • Ryuki mengatakan

              Sen, 24 Agustus 2015 pada 4:21 pm

              Bang boleh minta kontaknya? kira2 abang bisa kan kalo bikin aplikasi berbasis web yg kemarin sempet saya kasi tau di excel? kalau blh no hp atau bbm. Saya gak mungkin nyelesain itu sendiri & waktu yg mendesak. kirim ke bexthy(at)gmaildotcom. trims

              Balas
              • Masino Sinaga mengatakan

                Sel, 25 Agustus 2015 pada 4:50 pm

                Bisa saja, asalkan spec detailnya jelas dan lengkap. Sanggup gak menyediakan spec detail sampai ke struktur tabel dsb?

                Kalau nggak ya sama saja saya juga gak akan pernah bisa mengerjakannya.

                Balas
  7. Agus mengatakan

    Sen, 22 Februari 2016 pada 8:10 am

    Pak Masino, saya mau membuat sistem infomasi kearsipan dengan php maker. bagaimana cara memindahkan dan mengembalikan data antar tabel.. misalkan ada 2 tabel tabel data arsip dengan tabel peminjaman. apabila data arsip yang dipinjam bisa pindah ke tabel peminjaman, dan jika sudah dikembalikan data tersebut bisa kembali ke tabel daftar arsip (serupa dengan sistem infomasi perpustakaan).

    Mohon pencerahannya pak.

    Balas
    • Masino Sinaga mengatakan

      Sen, 22 Februari 2016 pada 7:10 pm

      Gunakan server event Row_Inserted dan Row_Updated.

      Baca topik Server Events and Client Scripts dari menu Help PHPMaker.

      Balas
      • Agus mengatakan

        Jum, 18 Maret 2016 pada 9:35 am

        pak Masino, mentok nih saya, jika pak masino tahu scriptnya untuk memindahkan dan mengembalikan antar table mohon bantuan pecerahan..

        Balas
        • Nanda mengatakan

          Jum, 18 Maret 2016 pada 10:49 am

          Maaf Newbie sedikit ikut menjawab.
          Jadi misal anda sudah punya TABEL ARSIP dan TABEL PEMINJAMAN.
          nanti ada Field STATUS dgn ketentuan.
          1 = Dipinjam
          2 = Sudah Kembali
          (hanya gambaran)
          mungkin yg dimaksud Pak Masino Seperti ini :
          Ketika Proses Insert di Form PEMINJAMAN nanti secara Default isi kan field STATUS tersebut menjadi =’1′ (Di pinjam) gunakan ROW_INSERTED.
          Kemudian saat Proses di Form Pengembalian ARSIP ada Proses Update Field STATUS tersebut menjadi =’2′ (Sudah kembali). gunakan ROW_UPDATED.

          Sepengetahuan saya seperti itu, jadi tidak ada acara Pindah Data dari tabel A ke Tabel B.
          Untuk melihat ARSIP yang di Pinjam dan Tidak bisa menggunakan Relasi Antar Tabel.
          tapi tergantung Skema Database nya seperti apa ??

          mohon maaf jika salah, hehe…

          Balas
          • Masino Sinaga mengatakan

            Sab, 19 Maret 2016 pada 11:28 am

            Iya, kira-kira seperti itu. Terima kasih sudah menjawab.

            Balas
        • Masino Sinaga mengatakan

          Sab, 19 Maret 2016 pada 11:28 am

          Itu sudah dijawab oleh Nanda.

          Balas
  8. angga mengatakan

    Jum, 11 Maret 2016 pada 3:27 am

    pak tanya lagi dong 🙂 🙂 🙂 saya punya table seperti berikut dan dibuat datadase view

    Cara A : SELECT tbl_a.id AS ID ,tbl_a.tgl, tbl_a.hari, tbl_a.jam1 AS `14.00`,(`tbl_a`.`jam2 `- `tbl_a`.`jam1`) AS `18.00`,
    (`tbl_a`.`jam3` – `tbl_a`.`jam2`) AS `22.00` FROM `tbl_pengunjung`

    Cara B : SELECT tbl_a.id, tbl_a.tgl, tbl_a.hari, tbl_a.jam1, (`tbl_a`.`jam2 `- `tbl_a`.`jam1`) AS `18.00`,
    (`tbl_a`.`jam3` – `tbl_a`.`jam2`) AS `22.00` FROM `tbl_pengunjung`

    untuk Cara A kalo saya coba kemungkinan karena ada “AS” saya coba rubah dengan Cara B, bisa dan berhasil. saya coba hapus “AS 18.00” ttp aja ga bisa pak dianggap AS (Name_exp_4) sama phpmaker.
    bagaiamana caranya yah pak.

    terima kasih 🙂

    Balas
    • angga mengatakan

      Jum, 11 Maret 2016 pada 3:28 am

      oh iya ada yg kurang pak saya save Cara A/B sebagai data_kunjungan

      Balas
    • Masino Sinaga mengatakan

      Jum, 11 Maret 2016 pada 12:26 pm

      Sudah melakukan sinkronisasi ulang antara project PHPMaker dan database-nya?

      Balas
      • angga mengatakan

        Jum, 11 Maret 2016 pada 8:07 pm

        sudah pak tapi tetap ngga bisa yah 🙁

        Balas
    • Masino Sinaga mengatakan

      Sab, 12 Maret 2016 pada 10:29 am

      Sebenarnya maksud View di atas itu untuk tujuan apa? Apa yang Anda inginkan sebenarnya?

      Balas
      • angga mengatakan

        Sab, 12 Maret 2016 pada 11:33 pm

        untuk ngakalin dari tbl_pengunjung pak, jadi ada beberapa field didalam tbl_pengunjung itu
        tbl_a.jam1, tbl_a.jam2, tbl_a.jam3, tbl_b.jam1, tbl_b.jam2, tbl_b.jam3, tbl_c.jam1, tbl_c.jam2
        tbl_c.jam3 s/d tbl_e pak maaf saya singkat pak :). jadi di Menu ada Lokasi A View 1 tbl_a, Lokasi B View 2 tbl_b dst pak. seperti itu pak kurang lebih

        Balas
        • Masino Sinaga mengatakan

          Sen, 14 Maret 2016 pada 11:13 am

          Pertanyaan selanjutnya, kenapa harus diakalin? 🙂

          Balas
          • angga mengatakan

            Sen, 14 Maret 2016 pada 12:54 pm

            maaf pak saya screenshot seperti ini http://prntscr.com/aezppf

            jadi dalam view itu sudah ada rumus pak. yg garis merah itu adalah View table, sedangkan hijau itu hasil View juga dari rumus. maka dari itu saya akalin dari table realnya (tbl_pengunjung) initinya sih mempermudah user untuk input pak, padahal yg di input itu tabel realnya pak. sebelumnya data tersebut pakai excel yg sudah ada rumus. kurang lebih seperti itu pak penjelasan saya 🙂 maaf pak banyak tanya 😀

            terima kasih pak

            Balas
            • angga mengatakan

              Sen, 14 Maret 2016 pada 1:05 pm

              oh iya pak saya coba di event ini function Row_Updating ($rsold, &$rsnew) {

              ew_Execute(“update ms_tbl_pengunjung set tbl_a.jam1 where id=”.$ID.” “);
              unset($rsnew[“18.00”]);
              unset($rsnew[“22.00”]);

              bisa tuh pak tp ada error seperti ini Failed to execute SQL. Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘where id=’ at line 1

              Balas
              • Masino Sinaga mengatakan

                Sen, 14 Maret 2016 pada 6:13 pm

                1. Periksa ulang sintaks SQL Update di atas, pastikan valid. Bila perlu, coba dengan database manager favorit Anda seperti Navicat, dan pastikan SQL tersebut valid.

                2. Pastikan variabel $ID mengandung nilai yang valid. Di server event yang Anda gunakan, apakah variabel ini sudah diisi dengan nilai yang valid? Mana kodenya?

                3. Pastikan field id tipe-nya bukan String.

                Balas
                • angga mengatakan

                  Sen, 14 Maret 2016 pada 6:51 pm

                  1. untuk SQL Update udh oke pak saya pake navicat

                  2. waduh kalo untuk ini saya tidak pake di Server Event tuh pak 😀 belum mengenal banyak tentang fungsi2 itu, saya lgsg coba aja di Row_Updating pak 🙁

                  3. kalau id sendiri sih tipenya bigint pak.

  9. angga mengatakan

    Sen, 14 Maret 2016 pada 8:08 pm

    solved pak untuk sementara 😀 horeee
    kalau ada yg bingung saya tanya lagi yah pak 🙂

    Balas
  10. Bayu mengatakan

    Kam, 24 November 2016 pada 2:20 pm

    Bang Masino.
    Salam kenal.
    Saya punya field primary key. Ketika Add, value-nya adalah tambah 1 dari isi record paling besar atau MAX(ID) + 1. Bagaimana cara naruhnya di Row_inserting?
    Terima kasih.

    Balas
    • Masino Sinaga mengatakan

      Kam, 24 November 2016 pada 2:33 pm

      Salam kenal kembali.

      Jika Primary Key field itu menggunakan Auto-Increment seperti di MySQL, maka Anda tidak perlu menanganinya dari server event. PHPMaker akan mengenali dan mengatasinya secara otomatis di sisi Aplikasi Web.

      Balas
      • Bayu mengatakan

        Kam, 24 November 2016 pada 2:53 pm

        Makasih jawabannya sebelumnya. Nah itu dia. Itu bukan auto increment dari databasenya, tapi saya bikin formula sendiri. Bagaimana jika field itu isinya adalah MAX(ID) + 1. Saya udah coba di function Row_inserting($rsold, &rsnew) {
        global $conn;
        $sSQL = “SELECT MAX(ID) + 1 FROM table”;
        $newID = $conn->Execute($sSQL);
        $renew[‘ID’] = $newID;
        return TRUE;
        }
        Hasilnya error waktu click button Add.

        Balas
      • Bayu mengatakan

        Kam, 24 November 2016 pada 3:15 pm

        Udah bisa Bang. Di row_inserting pake ini
        $MyField = ew_ExecuteScalar(“SELECT MAX(ID) + 1 FROM table”);
        $rsnew[“ID”] = $MyField;
        Sukses. Jangan kapok ya kalau nanti aku tanya lagi, Bang.
        Makasih banyak hlo.

        Balas
        • Masino Sinaga mengatakan

          Jum, 25 November 2016 pada 3:56 pm

          Sama-sama.

          Balas
  11. Rizal mengatakan

    Sel, 13 Desember 2016 pada 11:41 am

    kenapa kalo pakai add grid gak bisa?

    Balas
    • Masino Sinaga mengatakan

      Sel, 13 Desember 2016 pada 5:00 pm

      Apanya yang gak bisa? Yang jelas dong, kalau bilang gak bisa itu seperti apa gak bisanya?

      Balas
  12. Rudy Budiana mengatakan

    Sel, 27 Desember 2016 pada 3:53 pm

    Dear Bang Masino,
    Mohon Pencerahan nya..
    Saya membuat LINKED TABLE ke database lain dengan nama table php_tr_detail_med..
    di salah satu table di main database, saya membuat coding di server event row_inserted dimana ada perintah update ke salah satu table di LINKED TABLE (php_tr_detail_med). ..
    setelah di generate dan melakukan insert data koq ada error ini

    “Error: Invalid object name ‘php_tr_detail_med’. ”

    seperti tidak dikenali linked table nya..
    padahal kalau di list muncul table tersebut

    Balas
    • Masino Sinaga mengatakan

      Kam, 29 Desember 2016 pada 11:45 am

      Error itu terjadi karena Anda tidak menyertakan secara eksplisit object Connection Database yang digunakan oleh Linked Table tersebut. Karena tidak disertakan, maka secara default dia menggunakan object Connection Database default, di mana di database tersebut tidak ada table yang digunakan oleh Linked Table tadi.

      Baca dan pelajari lagi topik-topik berikut dari menu Help PHPMaker:
      – Linked Tables
      – Some Global Functions di bawah topik Server Events and Client Scripts

      Balas
  13. Cris mengatakan

    Sab, 21 Januari 2017 pada 12:04 pm

    Alangkah baiknya jika tampilan outputnya disertakan supaya kita bisa tahu bagaimana contoh tampilannya.

    Balas
    • Masino Sinaga mengatakan

      Sel, 24 Januari 2017 pada 8:51 am

      Sengaja memang tidak saya tampilkan output-nya, supaya menimbulkan efek penasaran, dan bisa langsung dicoba sendiri. 😛

      Balas
  14. tiyusandy mengatakan

    Sel, 27 Februari 2018 pada 9:52 am

    Kang masino, saya mau tanya.
    gimana kalau saya ada 1 table, dan dalam custom file saya ingin menampilkan data 2 id yang berbeda dalam custom file, jd nanti saat di print no 1 menampilkan ID 001 berserta isi dari ID 001 lalu, di bawahnya menampilkan ID 002 berserta data dari ID002…

    Thanks,

    Balas
  15. andi usman mengatakan

    Sel, 4 September 2018 pada 2:20 pm

    Fatal error: Call to undefined function PHPMaker2019\project1\ew_ExecuteScalar() in C:\xampp\htdocs\baharu\classes\category_detail.php on line 1070

    Balas
    • Masino Sinaga mengatakan

      Kam, 8 November 2018 pada 6:15 pm

      Di PHPMaker 2019, tidak ada function ew_ExecuteScalar. Silahkan baca topik ini dari forum diskusi PHPMaker untuk solusi lebih lanjut: http://hkvforums.com/viewtopic.php?f=4&t=42920

      Balas
  16. Charly mengatakan

    Sab, 9 Maret 2024 pada 5:55 pm

    Mat Malam Pak Masino.
    Pak, mohon bantuannya.
    Saya punya dua buah Tag Select, kemudian nilai dari masing2 tag tersebut setelah di pilih sayang ingin menggabungnya ke dalam sebuah field sebelum di simpan.
    sebagai Contoh. Di Tag Select yang pertama berisi Nilai DPU, dan Tag Select kedua berisi nilai, 01, 02 dst. Setelah di pilih di Field Text akan berisi contohnya DPU-01 sebelum disimpan. Mohon pencerahannya Pak Masino. Makasih

    Balas
    • Masino Sinaga mengatakan

      Sen, 11 Maret 2024 pada 1:44 am

      Bisa pakai server event Row_Inserting dan/atau Row_Updating:

      // sesuaikan nama field berikut sesuai kebutuhan
      $rsnew["Gabungan"] = $rsnew["DPU"] . "-" . $rsnew["Angka"];
      
      Balas
      • Charly mengatakan

        Sen, 11 Maret 2024 pada 9:46 am

        Makasih Pak Masino, saya sudah coba dan berhasil.
        Tapi saya ingin bertanya lagi, untuk Field Text jika disetting No Null di database sehingga wajib di isi datanya tidak bisa ditambah. Kalo bisa mohon bantuannya jika Tag Select Pertama terpilih otomatis mengupdate nilai di Field Text dan begitu juga Tag Select kedua dipilih otomatis mengupdate nilai Field Text menjadi gabungan nilai Field Pertama dan Kedua, sehingga Field Text tidak Kosong pada saat data ditambah…Mohon Pencerahannya, Makasih Pak Masino.

        Balas
        • Masino Sinaga mengatakan

          Sen, 11 Maret 2024 pada 7:20 pm

          Kalau itu harus pakai kode jQuery atau Javacript dan taruh di bagian Startup Script dari halaman Add dan/atau Edit.

          Balas
          • Charly mengatakan

            Sen, 11 Maret 2024 pada 9:42 pm

            Makasih Pak Masino atas bantuannya. Saya akang coba sesuai petunjuk Pak Masino.

            Balas
          • Charly mengatakan

            Sel, 12 Maret 2024 pada 8:47 am

            Makasih Pak Masino, saya sudah bisa membuatnya sesuai petunjuk Pak Masino. Makasih banyak

            Balas
            • Masino Sinaga mengatakan

              Sel, 12 Maret 2024 pada 9:05 am

              Sama-sama.

              Balas

Trackbacks

  1. Menyimpan Data ke Dua Table Sekaligus di Aplikasi Web dari PHPMaker – Masino Sinaga berkata:
    Rab, 17 Juni 2015 pukul 2:12 pm

    […] teknik di artikel ini sebenarnya mirip dengan artikel yang dulu sudah pernah saya tulis berjudul Mudahnya Mengelola Data yang Melibatkan Lebih Satu Table Melalui PHPMaker. Silahkan Anda bandingkan sendiri perbedaan di antar […]

    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