Bagaimana melakukan edit data berupa tanggal melalui form, yang menggunakan 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 struktur dari database yang digunakan dalam tutorial kali ini adalah sbb:
- CREATE TABLE mhs (
- nim varchar(10),
- namaMhs varchar(30),
- tglLahir date,
- PRIMARY KEY (`nim`)
- ) ;
Lalu silakan kalian isi record pada tabel tersebut.
*format data tanggal dalam MySQL memiliki format YYYY-MM-DD (tahun-bulan-tanggal).
Selanjutnya buat script PHPnya untuk 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++;
- }
- ?>
Perhatikan pada saat 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>”;
Maksud dari IF() tersebut 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.
Sumber :lupa dari mana
Semoga bermanfaat
makasih ilmunya....kalo untuk textarea gimna caranya supaya muncul databse di form edit, codenya ??? coba cara klo text n ndak mau
BalasHapusTerima kasih banyak sobat...sangat membantu posting nya...
BalasHapusTerima kasih banyak sobat...sangat membantu posting nya...
BalasHapusKenapa pada saat tanggal lahir di update nilai yang ada di database justru menjadi 0000-00-00? Mohon jawabannya
BalasHapuskarena format tanggal di mysql itu yyyy/mm/dd jadi dibalik format post nya
Hapus