Memasukkan Record ke Banyak Tabel dari Satu Form

Selasa, Oktober 30, 2012 || oleh Faris Arifiansyah

Hari ini saya mau berbagi tips untuk memasukkan data (record) ke banyak tabel atau istilahnya multiple table dari satu form. Contoh saya buat kasus seperti ini:

Saya misalkan di sebuah website ada kolom feedback dari pengunjung. Nah, pada bagian feedback pengunjung ini saya misalkan ada 4 form yang harus diisi.
1. Form Nama
2. Form Email
3. Form Subjek
4. Form Pesan / Masukan

Form ke 1 dan 2 ingin saya masukan ke tabel 'pengunjung'. Lalu form ke 3 dan 4 saya masukan ke tabel 'feedback'.
Seperti itulah kasusnya. Nah sekarang langsung ke langkah-langkahnya:
1. Buat database dengan nama bebas. Disini saya buat dengan nama "Tes"
2. Buat tabel "pengunjung" dan "feedback" pada database yang telah dibuat tadi. Saya anggap sudah bisa dalam pembuatan tabel ini..
3. Pada tabel pengunjung buat 3 field, yaitu "id", "nama" dan "email"
4. Pada tabel feedback buat 3 field juga, yaitu "id", "subjek", dan "pesan"
5. Jika sudah buat tabel, sekarang ke pembuatan formnya. Buat dengan nama 'form.html' dengan script seperti berikut:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Feedback</title>
</head>

<body style="margin:50px 25% 0px 25%;">
 <h1>Feedback</h1>
 <form method="post" action="pengolah.php">
       Nama <br><input name="nama" type="text" size="50"><br><br>
    Email <br><input name="email" type="text" size="50"><br><br>
    Subjek <br><input name="subjek" type="text" size="50"><br><br>
    Pesan <br><textarea name="pesan" style="height:250px; width:675px;"></textarea><br><br>
    <p style="text-align:right;"><input type="submit" value="Kirim Pesan"></p></form>
    </form>
</body>
</html>


6. Setelah form dibuat maka sekarang buat file php yang mengkoneksikan ke database dan memasukkan datanya. Karena pada script form diatas actionnya ke "pengolah.php", maka kita buat file php ini dengan nama "pengolah.php". Berikut scriptnya:
<?php

// koneksi ke database
$user = 'root';
$pass = '';
$dbh = new PDO ('mysql:host=localhost;dbname=tes', $user,$pass);

// Memberi variabel pada data yg didapat dari form
$nama = $_POST["nama"];
$email = $_POST["email"];
$subjek = $_POST["subjek"];
$pesan = $_POST["pesan"];

// kondisi jika salah satu form ada yang tidak diisi
if ($nama == "" || $email == "" || $subjek == "" || $pesan == "") {echo "ada yg belum diisi";}

// kondisi selain if di atas
else {
 $sql = "INSERT INTO pengunjung (nama,email) VALUES (:nama,:email)"; // Perintah memasukkan nama dan email ke tabel pengunjung
 $stmnt = $dbh->prepare($sql);
 $stmnt->execute(array(':nama'=>$nama,':email'=>$email));
 $sql2 = "INSERT INTO feedback (subjek,pesan) VALUES (:subjek,:pesan)"; // Perintah memasukkan subjek dan pesan ke tabel feedback
 $stmnt = $dbh->prepare($sql2);
 $stmnt->execute(array(':subjek'=>$subjek,':pesan'=>$pesan));
 echo "pesan telah terkirim";} // Tulisan yang ditampilkan jika sukses
?>

Disini saya menggunakan PDO untuk koneksi ke database-nya. Saya tidak akan menjelaskan PDO itu apa silahkan cari sendiri di google karena saya sendiri masih kurang mengerti mengenai PDO ini. Tapi yang saya ketahui PDO ini memliki kelebihan dibanding mysql* ataupun mysql_* yaitu lebih aman dari serangan SQL Injection dan juga fleksibel jika ingin pindah ke database yang lain.

Nah seperti itulah caranya memasukkan data dari satu form ke banyak tabel (disini 2 tabel)..

Semoga bisa membantu..

Download source code : disini

You Might Also Like

Facebook Comments

4 komentar

  1. postingan yang bagus mas... tapi saya masih bingung.. contoh di atas untuk PHP Objek ya? yang contoh PHP konvensionalnya gmn nich mas?
    terima kasih..

    BalasHapus
  2. iya ini untuk PDO.. kalo untuk akses database-nya pake mysql saya juga kurang tau.. Mungkin bisa browsing lagi.

    BalasHapus
  3. kok ane coman masuk ke satu tabel doank si gan? ke tabel yg satunya gak masuk? knp yaa gan? padahal codingan sama persis dengan ente.
    mohon pencerahannya gan

    BalasHapus
  4. cara edit datanya dan deletnya bagai mana gan???
    kalo bisa kirimm dong di email gue : kaswarwijayaekaputra@gmail.com

    BalasHapus

Like us on Facebook

Blog Stats

Subscribe