PHP
September 14th, 2009 | by rosihanari |
Free Software
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)
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.
Setelah form di atas disubmit, maka data akan tersimpan ke database, seperti tampak pada
gambar berikut ini
Kemudian kita buat form untuk memasukkan jumlah datanya terlebih dahulu.
form.html
<h1>Input Data Mahasiswa</h1>
<form method="post" action="submit.php">
Jumlah Data <input type="text" name="jum"> <input type="submit" name="submit"
value="Submit">
</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
<h1>Input Data Mahasiswa</h1>
<form method="post" action="insert.php">
<table border="1">
<tr><td>NIM</td><td>NAMA MHS</td></tr>
<?php
$n = $_POST['jum']; // membaca jumlah data
for ($i=1; $i<=$n; $i++)
{
echo "<tr><td><input type='text' name='nim".$i."'></td><td><input
type='text' name='nama".$i."'></td></tr>";
}
?>
</table>
<br>
<input type="hidden" name="jum" value="<?php echo $n; ?>">
<input type="submit" name="submit" value="Submit">
</form>
Bila Anda perhatikan script di atas, maka nama komponen untuk input NIM berbentuk
<input type='text' name='nim".$i."'>
yang mana nantinya looping ($i=1, 2, 3, , $n) akan membentuk komponen-komponen dengan
nama
<input type='text' name='nim1'>
<input type='text' name='nim2'>
<input type='text' name='nim3'>
.
.
dst
Nah hal yang sama kita buat juga untuk komponen input nama mahasiswa.
Kemudian, coba perhatikan pula bahwa di bagian akhir script terdapat perintah
<input type="hidden" name="jum" value="<?php echo $n; ?>">
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
<?php
// koneksi ke mysql
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
$n = $_POST['jum']; // membaca jumlah data
// looping
for ($i=1; $i<=$n; $i++)
{
$datanim = $_POST['nim'.$i];
$datanama = $_POST['nama'.$i];
if ((!empty($datanim)) && (!empty($datanama)))
{
$query = "INSERT INTO mhs (nim, namamhs) VALUES ('$datanim',
'$datanama')";
$hasil = mysql_query($query);
if ($hasil) echo "Input data sukses<br>";
else echo "Input data gagal<br>";
}
?>
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.