contoh script php dengan dua query mysql

Seringkali dalam sebuah aplikasi php atau web berbasis php, beberapa query database perlu dieksekusi dalam sekali proses. Semisal bila satu tombol atau link diklik maka akan ada eksekusi query insert table dan update table database secara sekaligus, ataupun bergantian.

Berikut ini contoh script php dengan dua query mysql sekaligus. Query pertama adalah insert table dan query kedua update table.

Contoh kasus adalah sebuah form yang digunakan untuk konfirmasi pembayaran yang digunakan oleh pembeli untuk mengkonfirmasi transfer pembayaran. Pembeli memasukan data, lalu setelah mengklik tombol submit maka ada dua query yang dieksekusi yaitu:

  • query insert table untuk menyimpan data ke dalam table database mysql; dan
  • query update table untuk merubah kolom status pembayaran bahwa pembeli sudah melakukan pembayaran.

Ada dua cara dalam mengeksekusi kedua query tersebut, cara yang pertama adalah dengan sekaligus mengeksekusi secara bersamaan, dan cara yang kedua adalah dengan mengeksekusi secara bergantian. Cara mana yang anda pilih, tergantung kebutuhan aplikasi php anda. Dalam contoh ini saya sertakan contoh keduanya.

Berikut adalah struktur dua table database yang dipakai:

  1. Tabel pembayaran, terdiri dari kolom:
    • id
    • invoice
    • tanggal
    • nama
    • bank
    • jumlah
  2. tabel statustransfer, terdiri dari kolom:
    1. id
    2. invoice
    3. status_pembayaran

 

Tabel pembayaran

pembayaran

Tabel statustransfer

statustransfer

 

Alurnya adalah seperti ini:

saat pembeli memasukan data konfirmasi pembayaran pada form konfirmasi pembayaran dan mengklik tombol submit, maka data akan diinsert ke tabel pembayaran, kemudian kolom status_pembayaran pada tabel statuspembayaran akan dirubah dengan perintah update.

Berikut ini code html untuk form konfirmasi pembayaran

<html>
<head>
<title>Script Menggunakan dua query</title>
</head>
<body>
<form action='eksekusi.php' method='post'>
<table>
<tr><td>Invoice</td><td><input type='text' name='invoice'></td></tr>
<tr><td>Tanggal</td><td><input type='text' name='tanggal' ></td></tr>
<tr><td>Bank</td><td><input type='text' name='bank' ></td></tr>
<tr><td>Nama</td><td><input type='text' name='nama' ></td></tr>
<tr><td>Jumlah Transfer</td><td><input type='text' name='jumlah' ></td></tr>
<tr><td></td><td><button type='Submit'>Submit KONFIRMASI PEMBAYARAN</button></td></tr>
</table>
</form>
</body>
</html>

Sedangkan halaman untuk mengeksekusi querynya yaitu halaman eksekusi.php , dengan code seperti di bawah ini

<?php
//koneksi database, sesuaikan dengan username dan password database Anda
$host = "localhost";
$user_name = "root";
$password = "1234";
$database = "dobelquery";

$koneksi = mysql_connect($host, $user_name, $password);
$pilihdatabase = mysql_select_db($database, $koneksi);

//menangkap data yang dipostkan pembeli
$invoice = $_POST['invoice'] ;
$tanggal = $_POST['tanggal'] ;
$bank = $_POST['bank'] ;
$nama = $_POST['nama'] ;
$jumlah = $_POST['jumlah'] ;

//perintah query insert ke table pembayaran
$query_insert = "insert into pembayaran set
invoice='$invoice',
tanggal='$tanggal',
bank='$bank',
jumlah='$jumlah',
nama='$nama'
";

//perintah query update pada table status
$query_update = "update statustransfer set
status_pembayaran='sudah transfer'
where invoice='$invoice'
";

//eksekusi query insert
$insert = mysql_query($query_insert);

//eksekusi query update
$update = mysql_query($query_update);

//hasil eksekusi query insert
if($insert)
{
echo "insert data ke table pembayaran berhasil ...<br/> ";
}
else
{
echo "Gagal insert ... ";
}

//hasil eksekusi query update
if($update)
{
echo "update statuspembayaran berhasil ... ";
}
else
{
echo "Gagal Update ... ";
}
?>

Β 

Pada code eksekusi.php di atas, query insert dan query update dieksekusi secara bersamaan. Sedangkan jika menginginkan eksekusi secara bergantian, misalnya query insert dieksekusi terlebih dahulu, setelah itu baru query update, maka code phpnya seperti di bawah ini:

<?php
//koneksi database, sesuaikan dengan username dan password database Anda
$host = "localhost";
$user_name = "root";
$password = "1234";
$database = "dobelquery";

$koneksi = mysql_connect($host, $user_name, $password);
$pilihdatabase = mysql_select_db($database, $koneksi);

//menangkap data yang dipostkan pembeli
$invoice = $_POST['invoice'] ;
$tanggal = $_POST['tanggal'] ;
$bank = $_POST['bank'] ;
$nama = $_POST['nama'] ;
$jumlah = $_POST['jumlah'] ;

//perintah query insert ke table pembayaran
$query_insert = "insert into pembayaran set
invoice='$invoice',
tanggal='$tanggal',
bank='$bank',
jumlah='$jumlah',
nama='$nama'
";

//perintah query update pada table status
$query_update = "update statustransfer set
status_pembayaran='sudah transfer'
where invoice='$invoice'
";

//eksekusi query insert
$insert = mysql_query($query_insert);

Β 

//hasil eksekusi query insert
if($insert)
{
echo "insert data ke table pembayaran berhasil ...<br/> ";

//eksekusi query update
$update = mysql_query($query_update);
}
else
{
echo "GagalΒ  ... ";
}
?>

  1. gimana caranya menjalankan beberapa query hanya dgn satu submit. misalnya query hapus pertama jalan, kemudian insert kemudian update namun dlm satu tabel yg sama. jadi antara hapus,insert,update tidak terpisah submitnya..thanks ilmunya

    1. halo dody,
      sbenarnya, script yang saya tulis ini sudah mewakili kebutuhan anda.. jika anda memperhatikannya. Hnya saja memang dalam script yang saya tulis ini hanya menggunakan 2 query yang dieksekusi secara bersamaan, yaitu insert dan update. Jika ingin lebih dari 2 query, misalnya: hapus,insert, update secara bersamaan, anda tinggal menambahkan perintahnya ke file eksekusi.php Mungkin akan lebih jelasnya apabila ada contoh kasusnya supaya lebih jelas.. karena penulisan scriptnya pada file eksekusi.php berbeda sesuai kebutuhan. Jika bergantian (berurutan),Mana dulu yang akan dieksekusi, insert, update, atau delete? atau langsung eksekusi semuanya secara bersamaan? penulisan scriptnya akan berbeda sesuai kebutuhan (kasus) yang diinginkan.

      Dalam contoh script saya, saya menggunakan 2 tabel, jika beberapa query dieksekusi sekaligus dalam sekali submit dan hanya pada satu tabel, … bisa juga. Namun saya belum dapat memberikan contohnya, karena keterbatasan waktu. Mungkin nanti kalau sempet ya πŸ˜€ . Atau jika ingin diberikan contohnya, silahkan hubungi saya lewat email dengan contoh kasusnya.. mungkin saya bisa menuliskan scriptnya.

    1. sayang sekali, jika anda ingin tahu dan ingin dibantu, … tentu anda akan menyebutkan dengan detail tidak jalannya bagaimana, pesan errornya bagaimana, dsb.. jadi dari situ mungkin bisa saya bantu atau jelaskan. BTW saya sudah cek lagi dan tidak ada yang error, script berjalan dengan baik. Apabila anda download scriptnya (di link download) dan bisa menginstalnya, pasti script berjalan dengan baik. *Hint : buka scriptnya dan sesuaikan dengan localhost anda….. Jadi saya hanya menanggapi: Kesalahan bukan pada scriptnya, tapi anda yang belum beruntung .. hehehee πŸ˜€

  2. Kalo misal tabel 1 isinya Jumlah saldo dan tabel 2 isinya harga , yang di inginkan nanti kita input harga ke tabel 2 tapi nanti otomatis tabel 1 yang isinya saldo itu akan dikurangi sesuai harga yang dimasukan.
    satu klik submit ada insert dan update, bisa kasih contoh scrip nya bos? πŸ™‚

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.