Postingan lainnya
Solusi Update Data (PHP & MySQL)
Salam hangat semuanya, Langsung aja ane punya masalah gini, ane kan punya 2 tabel data yang saling berelasi, dimana terdapat 1 tabel data untuk menghubungkan relasi tersebut. Misalnya sebagai berikut:
- - - - - - - - - - - - - -
Tabel A
- - - - - - - - - - - - - -
Data A
Data B
Data C
- - - - - - - - - - - - - -
- - - - - - - - - - - - - -
Tabel B
- - - - - - - - - - - - - -
Data X
Data Y
Data Z
- - - - - - - - - - - - - -
- - - - - - - - - - - - - -
Tabel AB
- - - - - - - - - - - - - -
Tabel A | Tabel B
- - - - - - - - - - - - - -
Data A | Data X
Data B | Data X
- - - - - - - - - - - - - -
Data A | Data Y
Data C | Data Y
- - - - - - - - - - - - - -
Data A | Data Z
Data B | Data Z
Data C | Data Z
- - - - - - - - - - - - - -
Nah, yang ingin ane tanyakan, solusi yang tepat untuk mengupdate "Tabel AB" itu seperti apa ya langkahnya? Apakah: [1] Pertama kita hapus dahulu seluruh data pada "Tabel AB" dengan pengkondisian yang sudah di tentukan, misalnya dengan sql "DELETE * FROM `tabel_ab` WHERE `tabel_b` = 'X'", lalu selanjutnya kita menambahkan ulang datanya. [2] Menggunakan perintah-perintah SQL yang berkaitan, misalnya "REPLACE INTO/INSERT ON DUPLICATE KEY UPDATE". [3] Ada solusi lain yang punya masalah seperti ini?
Boleh sekalian minta keterangan pro & cons (Kelebihan/Kekurangan) dengan jawaban agan? Terima kasih sebelumnya...
11 Jawaban:
screen desain tabel yg dari phpmyadmin aja,,,,
Gini gan, jadi ane mau buat sistem modulasi. Nah, modulasinya berdasarkan privilege/hak akses. Yang mau ane tanyain, kalo untuk metode UPDATE tabel "module_privilege"-nya, pake apa ya bagusnya? Apakah pake cara yang kita hapus seluruh data berdasarkan nama privilege lalu insert kembali sesuai dengan privilege dan modul yang diinginkan, atau adakah cara lain yang tepat dalam kasus ini.
Berikut ini screenshot tabel datanya di mysql
Tabel Module [link]https://s31.postimg.org/heafsvqpz/Screen_Shot_2016_06_16_at_4_09_17_PM.png[/link]
Tabel Privilege [link]https://s31.postimg.org/gq1l9xs07/Screen_Shot_2016_06_16_at_4_09_39_PM.png[/link]
Tabel Module_Privilege https://s31.postimg.org/527jfe2vb/Screen_Shot_2016_06_16_at_4_09_43_PM.png
Btw, seluruh gambarnya ane upload di postimage, soalnya kalo di taro disini kegedean gambarnya.
Terima kasih...
PHPMyAdmin ane belum aktif yang fitur designnya gan. Ini ane buat aja:
ane juga pernah ketemu yg semacam ini waktu mempelajari Workflow CMS Joomla, menurut ane bagus pake perintah SQL, soalnya ane pernah buat program mindah ratusan data ke email sekali pencet, besok" nya tempat Hostingnya nya DOWN, habis bilangnya Hosting unlimited ane jajal aja sekalian wkwkkwkw
Jadi, maksud agan, memang kalo kasus kaya gini kita mesti: [1] Hapus seluruh data yang berkaitan dengan privilege. [2] Memasukkan data privilege kembali sesuai dengan yang diinginkan.
Itu semua pake perintah SQL kok, gitu kan?
mungkin bisa di akalin lg desain DB nya, kayak ada yg d format JSON ato gimana gitu supaya lebih clean,,,,
Iya, untuk pemanggilan data memang ane buat web-servicenya/APInya. Jadi bentuknya JSON. Cuman kemarin masih rada bingung untuk update data.
Misalnya tuh kan, ane tu punya halaman pengelolaan data hak akses, dimana data-datanya ini tergabung dari 2 join tabel, yaitu tabel module dengan tabel privilege, sehingga membentuk tabel module_privilege. Nah, kalo pas nambah data baru sih mudah, tinggal seleksi modul-modul yang ingin digunakan, terus pas saat di submit tinggal looping, dan insert data.
Nah, yang jadi permasalahan saat kondisi updatenya. Berarti memang kita harus menghapus dulu, lalu menambahkan data modul sesuai dengan yang kita pilih pada form modul kan. Dan tidak mungkin menggunakan perintah SQL "UPDATE", karena tidak ada proses updatenya.
Jadi, yang bisa ane simpulkan adalah, berarti kasus seperti ini selalu menggunakan 2 kali proses query, yaitu "DELETE" dan "INSERT". Bener ga?
Jawaban Terpilih
kayaknya sih cuman bisa di clear terus insert ulang,,,
Hehe, iya bener, ane juga search" pendapat mengenai masalah ini, dan memang solusinya sih cuman di clear dan insert ulang. Btw, thx replynya, sangat membantu gan :)
Thanks again...