About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

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

 

Saya seorang dosen dan peneliti di Universitas Sebelas Maret. Bidang penelitian saya tentang: adaptive learning, datascience, dan computer aided learning. Selain itu saya juga seorang blogger, serta penulis buku tentang pemrograman, dan matematika.

Leave a Reply