Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP


Editing Data Tanggal via Form dengan PHP


August 31st, 2008 | by rosihanari | Cetak Artikel Cetak Artikel


GampSMS SMS Gateway

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??




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Script PHP untuk Mengedit Data Via Form
Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP
Script PHP untuk Mencari Selisih Waktu dan Tanggal
Mencari Selisih Waktu dan Tanggal dengan SQL
Script PHP untuk Menampilkan Data dalam Tabel dengan Warna Baris Selang-seling

Kata kunci: date edit - date php - edit script - edit tanggal - form edit - php script -


Ada 43 komentar dalam artikel ini.



  1. yayu says:

    salam knal om.

    mau tanya donk, gmn koding php untuk nampilin tanggal di laporan pdf dgn format contoh “02 februari 2010″.

    soalnya tiap saya panggil formatnya slalu bentuk “2010-02-02″.

    tolong ajarin donk om. makasih sebelumnya.

  2. yayu says:

    assalamualaikum om,

    sebelumnya saya ucapin trima kasih atas email balasan mengenai tanggalnya. tp saya da yg mau ditanyain lg neh om.

    saya bkin satu program, di dlmnya saya pakai id yg di isi manual tdk auto increment.
    nah saya pgn tambahin fungsi untuk nentuin fokus kursor pas pengisian id tsb tp ga bisa2. knp ya om? sedangkan klo di fokuskan utk nentuin nama or lainnya selain id bisa.

    contoh fungsi yg sy pakai:

    mohon bantuannya ya om.

    wasalam.

  3. yoyon says:

    maz kalo data nya diambil dari data base mysql kira-kira script php nya gimana ya ?
    tq

  4. iyan says:

    wah sayang video nya koq ga’bisa diputar ya:-(

  5. iyeh says:

    assalamualaikum

    mas kok script diatas gak mau diupdate ya?? terima kasih.

  6. Gilank says:

    Mas, ko pas saya ganti data lain yg selain tgl, tglnya malah berubah jdi 0000-00-00 gitu ya?
    kenapa?
    thanks :)

    • rosihanari says:

      @gilank: mungkin ada yang salah di pembacaan data tanggalnya. Coba cek lagi komponen combo untuk tanggalnya mas, mungkin ada yang kurang tepat nulisnya.

  7. syawal says:

    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.

  8. faizin says:

    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

  9. asep says:

    mohon bantuannya para master php, saya mau tanya gimana script untuk nampilin menu dropdown tapi datanya di ambil dari database,..??

    mohon bantuannya…

  10. henry says:

    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

  11. maulid says:

    Pak Rosihan, mohon bantuannya. Bagaimana untuk mendapatkan minggu keberapa berdasarkan input tanggal (popup calendar), terima kasih atas bantuannya.

  12. tanggal malah jadi 0000-00-00

    solusinya gimana gan?

    • rosihanari says:

      @informatika11d: berarti data tanggalnya gak kesimpan ke database. coba cek lagi scriptnya ya..

  13. danti says:

    Mas mau tanya, klo mau filter data sesuai tanggal yg diinginkan dari file yg kita upload gmn ya mas?
    Jd misal kita upload data, tanggalnya banyak. Nah, misalnya saya ingin filter data yg tanggal 1 januari 2013 saja. Gmn ya caranya?
    kalau bekenan mhn bantuannya via email jg gpp. Mksh mas :)



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*