Editing Data Tanggal via Form dengan PHP
August 31st, 2008 | by rosihanari |
Cetak Artikel Ini
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.
Untuk keperluan studi kasus yang akan dibahas di sini, kita buat tabel berikut ini
1 2 3 4 5 6 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | <?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??
Beberapa artikel terkait
- Script PHP untuk Mengedit Data Via Form
- Teknik Memvalidasi Input Tanggal dengan PHP
- Script PHP untuk Edit Data dengan Komponen RadioButton pada Form
- Teknik Proses Edit Data Dengan Berbagai Komponen Form
- Mencari Selisih Hari dari Dua Buah Tanggal dengan PHP (Tanpa Query SQL)
- Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP
- Script PHP untuk Mencari Selisih Waktu dan Tanggal
- Input Data Ke MySQL Secara Simultan Via Form dengan PHP
- Membuat Script PHP untuk Rekap Data dari Data Mentah
- Script Upload Video dan Video Player di Web dengan PHP dan MySQL
Share this article on:
Kata kunci: PHP -
Mau kaos (T-shirt) Wordpress keren? (
Rosihan Ari adalah seorang programmer, penulis buku, trainer, peneliti dan berusaha menjadi seorang blogger sejati dengan memberikan yang terbaik buat negeri ini. Berfokus pada computer programming serta computer aided learning for mathematics, ia ingin berbagi ilmu yang dimilikinya. 


Hi…
Thanks ya atas infonya.
Oh ya saya mau menanyakan beberapa hal lagi nih.
Klo skip php ada yang khusus buat button? Yang slalu saya pakai itu penggabungan dengan javascript untuk buat button. Klo ada, informasiin dong skip nya untuk file button. (semacam drop down menu atau horizontal menu).
Saya tunggu secepatnya ya???
cara membuat menu update data di php seperti update di antivirus gmn?
misal kalo saya mau update data lngsng dari tampilan web bukan dari php myadmin…
tolong dikirim lewat email saya or di situs ini..
maksudnya update seperti di antivirus bagaimana mas Anton?
sebelumnya sy minta maaf, karena masih pemula, pertanyaanya yg aneh2.
sudah lama sy mencari artikel ttg input tanggal. memang banyak Date picker yg bisa dipakai, tp menurut sy kurang praktis, kr user harus mengklik dulu ikon datepicker, baru bisa milih tanggal.
kebetulan ketemu artikel ini. dimana tanggal yg di inputkan di form edit, dibalik, agar sesuai dengan format di mysql (Y-m-d).
cuma saya kok masih belum paham ya. klo berkenan sy minta bantuan artikel ttg input, menampilkan dan editing anggal di textfield (mis. 02-12-2008) lalu di proses dg dibalik sesuai format mysql (2008-12-02) baru insert ke database
to apri2: untuk membalik tanggal, idenya adalah dengan memecahnya menjadi bagian tanggal, bulan dan tahun yang tersendiri. Anda bisa gunakan function explode(“-”, $tanggal); Selanjutnya bagian-bagian pecahannya tsb disusun kembali menjadi format tanggal yang diinginkan.
klo kabisat gmn ??email me yach …thx
to okto: kalo field tanggal anda di database menggunakan DATE, maka secara otomatis ada semacam filter. Misal anda pilih tanggal 29 Pebruari 2007, maka data tidak akan tersimpan.
Terima kasih kepada mas rosihanari untuk blog yang keren dan tujuan yang mulia untuk berbagi ilmu. sebelumnya maaf saya pemula dan mungkin komen saya kurang relevan dengan artikel diatas. saya sedang eksperimen membuat blog dikomputer saya. pertanyaan saya, mengapa tampilan waktu dan tanggal pada blog yg saya buat tidak sama dengan waktu dan tanggal yang ada pada windows,bagaimana cara menyamakan waktu pada tampilan blog dan waktu pada windows. terima kasih.
to jaka: anda membuat sendiri blognya dengan script buatan sendiri? atau hanya dengan instal CMS yang telah ada? kalau buat sendiri, anda gunakan perintah apa untuk membaca tanggal dan waktunya?
makasih maz atas segala ilmu yg dah dibagikan., TAku yg semula membingungkan jadi ada pencerahan.,