Beberapa hari lalu dapat job freelance, ada yang minta tolong untuk membetulkan script phpnya yang merupakan bagian dari rancangan aplikasi pemesanan tiket bus berbasis php. Script tersebut tidak bisa menyimpan data dalam beberapa field sekaligus ke mysql.
Saya jadi ingat beberapa bulan lalu juga saya menemukan script php yang hampir sama fungsinya, hanya saja saya lupa link sumbernya. Alhasil saya pun mencoba mengutak atik scriptnya dengan mencari penyebabnya kenapa tidak bisa menyimpan/ insert multiple row ke database mysql nya. Ternyata selain scriptnya yang kurang betul, kolom tabel databasenyapun kurang tepat.
Kali ini saya akan memberi contoh script form php untuk input banyak data sekaligus ke database. Script php seperti ini mungkin akan dapat dijumpai juga dengan mencarinya di google dengan kata kunci:
- insert multiple row ke dalam database ,
- multiple insert dengan php,
- input data secara simultan, atau yang lainnya
Contoh penggunaan script php ini dapat diaplikasikan pada aplikasi yang berbasis php, misalnya:
1. aplikasi php pemesanan tiket bus, tiket bioskop
2. aplikasi kasir untuk memasukan rincian data belanja
3. aplikasi daftar nilai mata pelajaran siswa;
4. aplikasi pemesanan barang
dan masih banyak kemungkinan penerapannya pada aplikasi lain, silahkan dikembangkan sendiri.
Dalam contoh script php ini, saya mencontohkan form pemesanan tempered glass online pada sebuah toko online accecories. Script ini sangat sederhana karena hanya contoh saja, silahkan dikembangkan sendiri dengan menambahkan harga, dan lain lain untuk pengembangan di aplikasi php Anda sendiri. Script php ini ditulis dengan native php, dan bootstrap.
ada 2 tabel database yang saya gunakan yaitu:
Tabel pemesan dan tabel barang.
Tabel pesanan berisi data diri dari konsumen dan barang yang dipesannya, dan tabel order berisi item barang yang dapat dipesan serta harganya.
Form php yang pertama berisi beberapa field input text untuk diisikan informasi konsumen/ pemesan dan barang yang dipesan. Form tersebut seperti di bawah ini:
untuk code phpnya seperti ini.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content="form order tempered glass "> <meta name="author" content="zona accesories"> <title>Form Order Tempered Glas</title> <!-- Bootstrap core CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> <!-- Custom styles for this template --> </head> <body> <div class="container"> <p><div class="alert alert-warning" role="alert"> <center>Form Order Tempered Glass WAWAO</center> </div> <form action='save-order-tg.php' method='post'> <table class="table table-striped"> <tbody> <tr> <th scope="row">Nama</th> <td></td> <td></td> <td><input type="text" class="form-control" name="nama"></td> </tr> <tr> <th scope="row">Alamat lengkap</th> <td></td> <td></td> <td><textarea class="form-control" rows="3" name="alamat"></textarea></td> </tr> <tr> <th scope="row">HP</th> <td></td> <td></td> <td><input type="text" class="form-control" name="hp"></td> </tr> </tbody> </table> <br/><br/> <div class='alert alert-info' role='alert'> <center>Daftar item yang dipesan</center> </div> <table class="table table-striped"> <thead> <tr> <th>Type</th> <th>Harga</th> <th>Qty</th> </tr> </thead> <tbody> <?php include"koneksi.php"; $sql = "select tipe,harga from barang ORDER BY tipe"; $tampilkan = mysql_query($sql); while($select_result = mysql_fetch_array($tampilkan)) { $tipe = $select_result['tipe'] ; $harga = $select_result['harga'] ; echo" <tr> <td>$tipe<input type='hidden' class='form-control' value='$tipe'name='tipe[]' readonly></td> <td><input type='text' class='form-control' value='$harga'name='harga[]' readonly></td> <td><input type='number' class='form-control' name='qty[]'></td> </tr>";} ?> </tbody> </table> <div class="form-group"> <center><button type="submit" class="btn btn-primary">Submit</button></center> </div> </form> </p> <footer class="footer"> <p><center>© Zona Accecories 2017</center></p> </footer> </div> <!-- /container --> </body> </html>
user tidak harus mengisi semua field inputan form, cukup mengisikan yang dia pesan dengan mengisikan jumlahnya di tabel input qty. Saat tombol klik submit, semua data dalam field dimasukan ke dalam table termasuk field yang tidak diisi (kosong).
halaman php selanjutnya adalah order.php, yang berisi informasi order dari user berdasarkan invoice.
<html> <head> <title>Form Order Tempered Glass</title> <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css' integrity='sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7' crossorigin='anonymous'> </head> <body> <?php //koneksi database, sesuaikan dengan username dan password database Anda include"koneksi.php"; $invoice = $_GET['invoice'] ; $ymd = date("d-m-y"); //hitug dan tampilkan jumlah total order $hitung="SELECT SUM(harga * qty) AS totalorder,SUM(qty) AS totalqty FROM pesanan WHERE invoice='$invoice' GROUP BY invoice"; $vhitung = mysql_query($hitung); $hasil = mysql_fetch_array($vhitung); $totalorder = $hasil['totalorder'] ; $totalqty = $hasil['totalqty'] ; //perintah seleksi data pesanan kecuali yang 0 // $selekdata="SELECT nama,alamat,hp,ymd FROM pesanan WHERE qty <>'0' and invoice='$invoice' group by invoice"; $showdata = mysql_query($selekdata); $hasil = mysql_fetch_array($showdata); $nama = $hasil['nama']; $alamat = $hasil['alamat']; $hp = $hasil['hp']; $ymd = $hasil['ymd']; echo" <div class='container'> <div class='row'> <div class='col'></div> <div class='col-5'> <div class='alert alert-warning' role='alert'> <center>Order Tempered Glass WAWAO</center> </div> <table class='table table-striped'><col style='width: 30%;'><col style='width: 70%;'> <tbody> <tr><td>Tanggal Order</td><td>$ymd</td></tr> <tr><td>Nama</td><td>$nama</td></tr> <tr><td>Alamat</td><td>$alamat</td></tr> <tr><td>HP</td><td>$hp</td></tr> <tr><td>Nomer Invoice</td><td><a href='order.php?invoice=$invoice' target='_blank'><h3><span class='label label-info'>$invoice</span></h3></a></td></tr> <tr><td>Total Item</td><td><h3><span class='label label-warning'>$totalqty</span></h3></td></tr> <tr><td>Tagihan </td><td><h3><span class='label label-danger'>$totalorder</span></h3></td></tr> </tbody> </table> <br/> "; echo"<br/> <div class='alert alert-info' role='alert'> <center>Daftar item yang dipesan</center> </div> <table class='table table-striped'> <thead> <tr> <th>Type</th> <th>Harga</th> <th>Qty</th> <th>Sub Total</th> </tr> </thead> <tbody>"; //tampilkan daftar order dan subtotal $seleksi="SELECT tipe,harga,qty,harga*qty AS subtotal FROM pesanan WHERE invoice='$invoice'"; $tampilkan = mysql_query($seleksi); while($select_result = mysql_fetch_array($tampilkan)) { $tipea = $select_result['tipe'] ; $hargaa = $select_result['harga'] ; $qtya = $select_result['qty'] ; $subtotal = $select_result['subtotal'] ; echo"<tr><td>$tipea</td><td>$hargaa</td><td>$qtya</td><td>$subtotal</td></tr> "; } echo"<tr><td></td><td><b>TOTAL</b></td><td><h3><span class='label label-warning'>$totalqty</span></h3></td><td><h3><span class='label label-danger'>$totalorder</span></h3></td></tr> "; echo"</tbody></table>"; echo" <br/> <div class='alert alert-warning' role='alert'> <center><a href='javascript:if(window.print)window.print()'> <button type='button' class='btn btn-success'><span class='glyphicon glyphicon-print' aria-hidden='true'></span> Cetak halaman ini</button></a></center> </div> "; ?> </body> </html>
Halaman php yang tidak kalah penting, adalah halaman admin.php. Di halaman ini, semua order user ditampilkan, dan dapat dilihat admin. Admin dapat memilih untuk membukanya, dan mem-print order user.
untuk lebih jelasnya mengenai script ini, bisa dilihat pada demo script ini:
untuk masuk admin panel, username: admin password: admin
password zip: www.bayuajie.com
Versi demo dan source code php form order barang online ini adalah versi free, jika menginginkan support instalasi atau menginginkan versi yang memeiliki beberapa feature, bisa menghubungi saya.
Versi Donatur
- ada feature login dan logout untuk admin, sehingga halaman admin hanya bisa diakses setelah login.
- ada feature edit dan hapus field input form, harga dan item.
jadi tidak perlu menggunakan phpmyadmin atau sqlyog untuk mengedit inputan form. - ada feature tombol print
versi berbayar
- ada feature login dan logout untuk admin, sehingga halaman admin hanya bisa diakses setelah login.
- ada feature edit dan hapus field input form, harga dan item.
jadi tidak perlu menggunakan phpmyadmin atau sqlyog untuk mengedit inputan form. - ada feature kirim ke email admin otomatis, sehingga ada notifikasi email setiap kali ada user yang mengisi form order.
- free support instalasi ke website Anda
ingin memodifikasi script form ini sesuai dengan kebutuhan Anda?
perlu bantuan? silahkan hubungi saya via Whatsapp.
Pagi kak, untuk file proses insertnya itu bagaimana yaa, agar form yang kosong tidak tersimpan pada tabel? Mohon bantuannya?
halo makruf,
untuk sementara saya belum menemukan caranya,dalam contoh kasus script saya ini,semua field input di form memang HARUS dimasukan ke dalam tabel,
namun demikian, data yang kosong tersebut nantinya otomatis dihapus dalam proses eksekusi jadi ,tidak ada data yang kosong yang tertinggal di tabel.
coba perhatikan di file save-order-tg.php di baris ke 33 di situ ada query menghapus row yang kosong di tabel.
memang berbeda dengancode yang saya tulis di postinganblog (belumsaya update).
bisa di download disini : http://www.bayuajie.com/script-order-barang.zip
Passwordnya apa ya bang ?
ada itu
bisa ngak dibuat secara otomatis saja perhitungan nya di total setelah input jumlah order dan harga nya maka otomatis langsung muncul total nya tolong pencerahan nya..menggunakan ajax nya gimana ya
mungkin bisa, tapi rumit codingnya,apalagikalausemakin banyak item barangnya..semakin panjang codingnya.klo menggunakan ajax gak tau,silahkan googling sendiri ya,..klo menggunakan javascript bisa gabungin dengan script ini: https://www.bayuajie.com/blog/2016/05/script-php-hitung-otomatis-pada-field-input-form-web/