Input Data Ke MySQL Secara Simultan Via Form dengan PHP

Input Data Ke MySQL Secara Simultan Via Form dengan PHP

Seringkali kita membuat script untuk input data hanya terdiri dari sebuah data atau record saja. Itu sangat-sangat mudah dilakukan. Lantas, bagaimana bila sekali entri langsung beberapa record sekaligus secara simultan? Dengan demikian kita bisa entri beberapa data sekaligus tanpa repot bolak-balik membuka form baru ketika mau menyisipkan data. Kira-kira hal ini bisa dilakukan nggak ya? He.. 3x… Ya jelas bisa donk! Oleh karena itu akan saya paparkan bagaimana ide membuat script seperti itu dengan PHP melalui artikel ini.

Sebelum kita mulai membahas cara pembuatannya, ada baiknya Anda simak gambar berikut ini yang merupakan grand design studi kasus yang akan kita buat sebagai contoh input data simultan ini. Studi kasus yang saya ambil terkait dengan entri data mahasiswa.
Pertama, user diminta memasukkan jumlah data yang mau dientri terlebih dahulu (lihat gambar di bawah ini)

input data form simultan
Kedua, setelah user memasukkan jumlah data yang mau dientri, selanjutnya muncul form dengan komponen entri sejumlah data yang tadi dimasukkan. Pada form inilah data yang mau disimpan ke database, dimasukkan.
input data form simultan
Setelah form di atas disubmit, maka data akan tersimpan ke database, seperti tampak pada gambar berikut ini
input data form simultan
Nah… bagaimana cara membuatnya?
Pertama kita siapkan dahulu tabel database MySQL nya. Pada studi kasus ini, kita buat simpel saja deh (cukup 2 field saja dulu)

view sourceprint?
1.CREATE TABLE mhs (
2.nim varchar(5),
3.namamhs varchar(20),
4.PRIMARY KEY (nim)
5.);

Kemudian kita buat form untuk memasukkan jumlah datanya terlebih dahulu.
form.html

view sourceprint?
1.<h1>Input Data Mahasiswa</h1>
2. 
3.<form method="post" action="submit.php">
4.Jumlah Data <input type="text" name="jum"> <input type="submit" name="submit" value="Submit">
5.</form>

Saya kira untuk membuat form di atas tidak ada masalah kan? :-)
Berikutnya kita buat script untuk menampilkan komponen inputnya sejumlah data yang tadi dimasukkan pada form di atas. Konsepnya adalah kita gunakan looping untuk menampilkan komponen inputnya. Lantas… loopingnya dilakukan berapa kali? ya… sebanyak jumlah datanya donk.
submit.php

view sourceprint?
01.

Input Data Mahasiswa

02. 
03.<form method="post" action="insert.php">
04.<table border="1">
05.

NIM NAMA MHS

06. 
07.<?php
08.$n = $_POST['jum']; // membaca jumlah data
09. 
10.for ($i=1; $i<=$n; $i++)
11.{
12.echo "

<input type='text' name='nim"
.$i."'> <input type='text' name='nama".$i."'>

";

13.}
14.?>
15. 
16.

17.
18.<input type="hidden" name="jum" value="">
19.<input type="submit" name="submit" value="Submit">
20.

Bila Anda perhatikan script di atas, maka nama komponen untuk input NIM berbentuk

view sourceprint?
1.<input type='text' name='nim".$i."'>

yang mana nantinya looping ($i=1, 2, 3, …, $n) akan membentuk komponen-komponen dengan nama

view sourceprint?
1.<input type='text' name='nim1'>
2.<input type='text' name='nim2'>
3.<input type='text' name='nim3'>
4..
5..
6.dst

Nah… hal yang sama kita buat juga untuk komponen input nama mahasiswa.
Kemudian, coba perhatikan pula bahwa di bagian akhir script terdapat perintah

view sourceprint?
1.<input type="hidden" name="jum" value="">

Perintah tersebut akan menghasilkan komponen hidden untuk menyimpan nilai $n (banyaknya data). Nilai ini nanti akan ikut disubmit ke script berikutnya guna pemrosesan lebih lanjut.
Terakhir.. kita buat script untuk insert datanya. Untuk membuat script insert data secara simultan ini, mungkin yang menjadi kendala adalah bagaimana cara membaca semua data yang telah diinputkan dalam form sebelumnya untuk kemudian disimpan ke dalam database. Adapun konsep pembacaan datanya adalah dengan menggunakan looping juga. Looping ini dilakukan sebanyak jumlah datanya ($n). Oleh karena itulah pada script ini kita butuh nilai $n yang ikut tersubmit dari script sebelumnya.
insert.php

view sourceprint?
01.<?php
02. 
03.// koneksi ke mysql
04.mysql_connect("dbhost", "dbuser", "dbpass");
05.mysql_select_db("dbname");
06. 
07.$n = $_POST['jum']; // membaca jumlah data
08. 
09.// looping
10.for ($i=1; $i<=$n; $i++)
11.{
12.$datanim = $_POST['nim'.$i];
13.$datanama = $_POST['nama'.$i];
14. 
15.if ((!empty($datanim)) && (!empty($datanama)))
16.{
17.$query = "INSERT INTO mhs (nim, namamhs) VALUES ('$datanim', '$datanama')";
18.$hasil = mysql_query($query);
19. 
20.if ($hasil) echo "Input data sukses
"
;
21.else echo "Input data gagal
"
;
22.}
23.}
24. 
25.?>

Perhatikan perintah $datanim = $_POST['nim'.$i]; yang terdapat dalam looping di atas. Perintah tersebut digunakan untuk membaca value yang diinputkan dari komponen form bernama ‘nim1‘, ‘nim2‘, … dst. Hal yang sama juga berlaku untuk perintah $datanama = $_POST['nama'.$i];. Setelah value NIM dan Nama Mhs dari komponen pertama (‘nim1‘ dan ‘nama1‘) dibaca, selanjutnya baru disimpan ke database. Kemudian pembacaan dan insert data ke database dilanjutkan pada komponen kedua (‘nim2‘ dan ‘nama2‘), begitu seterusnya sampai dengan komponen terakhir.
Oya.. tambahan lagi, dalam script di atas juga terdapat statement

view sourceprint?
1.if ((!empty($datanim)) && (!empty($datanama)))
2.{
3....
4.}

Statement tersebut digunakan untuk mengecek jika ada baris komponen form yang tidak diisi NIM maupun nama mahasiswanya. Proses insert data ke database hanya akan dilakukan bila komponen input NIM dan nama mahasiswanya tidak kosong.
OK deh… demikian tadi ide untuk membuat script insert data ke database MySQL secara simultan melalui form dengan script PHP. Mudah-mudahan ada manfaatnya.
Oya, Anda juga bisa membaca artikel saya yang lain tentang cara update data secara simultan.
sumber : http://blog.rosihanari.net/input-data-ke-mysql-secara-simultan-via-form-dengan-php/

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s