• Home
  • /
  • PHP
  • /
  • Editing Data Tanggal via Form dengan PHP
PHP

Editing Data Tanggal via Form dengan PHP

 

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.

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

 

Bagikan artikel ini jika bermanfaat !

Assalaamu'alaikum.. aktivitas keseharian saya mengajar di Universitas Sebelas Maret, dengan matakuliah pemrograman dan basis data. Adapun bidang penelitian saya tentang computational thinking dan computer-aided learning.

Leave a Reply