Editing Data Tanggal via Form dengan PHP
August 31st, 2008 | by rosihanari |
Cetak Artikel
Pada artikel kali ini akan dibahas bagaimana melakukan edit data berupa tanggal melalui form, yang diintegrasikan dengan script PHP. Adapun data tanggal disimpan dalam database MySQL.
Proses edit data tanggal melalui form ini nanti menggunakan komponen combobox, yang terdiri dari 3 bagian, yaitu untuk tanggal, bulan dan tahun.
Sebagai ilustrasi, perhatikan video berikut ini yang menampilkan gambaran proses edit data tanggal.
[swf w=368 h=299]http://butikamalia.com/data/edit2.swf[/swf]
Untuk keperluan studi kasus yang akan dibahas di sini, kita buat tabel berikut ini
CREATE TABLE mhs ( nim varchar(10), namaMhs varchar(30), tglLahir date, PRIMARY KEYÂ (`nim`) ) ;
Kemudian silakan isi record sebarang pada tabel tersebut.
Perlu jadi catatan di sini, bahwa format data tanggal dalam MySQL memiliki format YYYY-MM-DD (tahun-bulan-tanggal).
Nah selanjutnya kita buat script PHPnya untuk keperluan edit data
<?php
mysql_connect("namahost","dbuser","dbpass");
mysql_select_db("dbname");
$op = $_GET['op'];
// proses untuk edit data yang akan menampilkan
// form edit data
if ($op == "edit")
{
$nim = $_GET['nim'];
$query = "SELECT * FROM mhs WHERE nim = '$nim'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
// memecah tanggal dari MySQL
// menggunakan separator '-'
$pecahTanggal = explode("-", $data['tglLahir']);
$tanggal = $pecahTanggal[2];
$bulan = $pecahTanggal[1];
$tahun = $pecahTanggal[0];
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF'].
"?op=update\">";
echo "<table border=\"1\">";
echo "<tr><td>NIM</td><td><input type=\"text\" name=\"nim\" value=\"
".$data['nim']."\"></td></tr>";
echo "<tr><td>Nama Mahasiswa</td><td><input type=\"text\"
name=\"namaMhs\" value=\"".$data['namaMhs']."\"></td></tr>";
echo "<tr><td>Tanggal Lahir</td><td>";
// menampilkan pilihan combobox untuk tanggal
echo "<select name=\"tgl\">";
for ($tgl=1; $tgl<=31; $tgl++)
{
if ($tgl == $tanggal) echo "<option value=\"
".$tgl."\" selected>".$tgl.
"</option>";
else echo "<option value=\"".$tgl."\">".$tgl."</item>";
}
echo "</select>";
// menampilkan pilihan combobox untuk bulan
echo "<select name=\"bln\">";
for ($bln=1; $bln<=12; $bln++)
{
if ($bln == $bulan) echo "<option value=\"
".$bln."\" selected>".$bln.
"</option>";
else echo "<option value=\"".$bln."\">".$bln."</option>";
}
echo "</select>";
// menampilkan pilihan combobox untuk tahun
// dibatasi hanya mulai th. 1940 - 2008
echo "<select name=\"thn\">";
for ($thn=1940; $thn<=2008; $thn++)
{
if ($thn == $tahun) echo "<option value=\"
".$thn."\" selected>".$thn.
"</option>";
else echo "<option value=\"".$thn."\">".$thn."</option>";
}
echo "</select>";
echo "</td></tr>";
echo "</table>";
echo "<input type=\"hidden\" name=\"nimLama\" value=\"
".$data['nim']."\">";
echo "<input type=\"submit\" name=\"submit\"
value=\"Simpan Perubahan\">";
echo "</form>";
}
else if ($op == "update")
{
$nim = $_POST['nim'];
$namaMhs = $_POST['namaMhs'];
$nimLama = $_POST['nimLama'];
// menyambung tanggal sesuai format MySQL (thn-bln-tgl)
$tglLahir = $_POST['thn']."-".$_POST['bln']."-".$_POST['tgl'];
$query = "UPDATE mhs SET nim = '$nim', namaMhs = '$namaMhs',
tglLahir = '$tglLahir' WHERE nim = '$nimLama'";
$hasil = mysql_query($query);
if ($hasil) echo "<p>Proses Update Sukses</p>";
else echo "<p>Proses Update Gagal</p>";
}
?>
<table border="1">
<tr>
<th>No</th>
<th>NIM</th>
<th>Nama Mahasiswa</th>
<th>Tgl Lahir</th>
<th>Action</th>
</tr>
<?php
$no = 1;
$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
echo "<tr>";
echo "<td>".$no."</td>";
echo "<td>".$data['nim']."</td>";
echo "<td>".$data['namaMhs']."</td>";
echo "<td>".$data['tglLahir']."</td>";
echo "<td><a href=\"".$_SERVER['PHP_SELF']."?op=edit&nim=
".$data['nim']."\">Edit</a></td>";
echo "</tr>";
$no++;
}
?>
Coba perhatikan… video di atas, setelah muncul form edit, maka tanggal, bulan dan tahun dalam combobox langsung menampilkan sesuai dengan yang di database. Hal ini karena adanya tag ‘selected’ pada tag <option></option> dalam combobox. Sebagai contoh:
if ($tgl == $tanggal) echo “<option value=\â€".$tgl.â€\†selected>â€.$tgl.â€</option>â€;
lantas… apa maksudnya IF() tersebut? Maksudnya adalah apabila nilai tanggal dalam increment ($tgl) sama dengan tanggal yang ada dalam database, maka <option> untuk tanggal tersebut ‘selected’, artinya tanggal yang muncul (atau terpilih) dalam combobox adalah tanggal yang sesuai dalam database. Hal ini juga berlaku untuk bulan dan tahun.
Mudah bukan??
| Baca Juga Artikel Terkait |
Kata kunci: date edit - date php - edit script - edit tanggal - form edit - php script -




Mas, ko pas saya ganti data lain yg selain tgl, tglnya malah berubah jdi 0000-00-00 gitu ya?
kenapa?
thanks
@gilank: mungkin ada yang salah di pembacaan data tanggalnya. Coba cek lagi komponen combo untuk tanggalnya mas, mungkin ada yang kurang tepat nulisnya.
Sebelumnya terimakasih, saya jadi dapat pencerahan, Mas saya mau tanya : tutorial mas sudah saya coba dan proses edit tanggal berhasil, tetapi jika pada form tersebut yang di edit bukan tanggalnya misal”nama” atau lainnya dan tanggalnya tetap itu saja artinya tidak di rubah, (Kenapa setelah proses update data, data tanggal di tabel mysql berubah menjadi “0000-00-00″. Mohon bantuannya, terima kasih.
@syawal: kemungkinan sewaktu proses update nama nya, data tanggal tidak terbaca sewaktu proses update querynya mas…
Kalau Edit ComboBOX tanggal dalam kondisi kosong gimana yach?
dalam artian dalam kondisi kosong opsi pilihan pada waktu kondisi kosong seperti pada waktu input
tetapi jika sudah terisi baru, di combobox tentu sudah ada data tanggal
mohon bantuannya para master php, saya mau tanya gimana script untuk nampilin menu dropdown tapi datanya di ambil dari database,..??
mohon bantuannya…
keren artikelnya sangat membantu, request contoh pembayaran dengan denda perbulan menggunakan tgl, mungkin sekedar logika php nya aja ….
via email juga blh, makasih keep share
top markotop nih blog
Pak Rosihan, mohon bantuannya. Bagaimana untuk mendapatkan minggu keberapa berdasarkan input tanggal (popup calendar), terima kasih atas bantuannya.
tanggal malah jadi 0000-00-00
solusinya gimana gan?
@informatika11d: berarti data tanggalnya gak kesimpan ke database. coba cek lagi scriptnya ya..