Loading halaman Tutorial Visual Basic, Delphi, PHP - Calon Programer : Mengedit tanggal dari form php ...

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:

  1. CREATE TABLE mhs ( 
  2. nim varchar(10), 
  3. namaMhs varchar(30), 
  4. tglLahir date
  5. PRIMARY KEY  (`nim`) 
  6. ) ; 

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


  1. <?php 
  2. mysql_connect("namahost","dbuser","dbpass"); 
  3. mysql_select_db("dbname"); 
  4.   
  5. $op = $_GET['op']; 
  6.   
  7. // proses untuk edit data yang akan menampilkan 
  8. // form edit data 
  9.   
  10. if ($op == "edit"
  11.    $nim = $_GET['nim']; 
  12.   
  13.    $query = "SELECT * FROM mhs WHERE nim = '$nim'"
  14.    $hasil = mysql_query($query); 
  15.    $data  = mysql_fetch_array($hasil); 
  16.   
  17.    // memecah tanggal dari MySQL 
  18.    // menggunakan separator '-' 
  19.   
  20.    $pecahTanggal = explode("-", $data['tglLahir']); 
  21.    $tanggal = $pecahTanggal[2]; 
  22.    $bulan   = $pecahTanggal[1]; 
  23.    $tahun   = $pecahTanggal[0]; 
  24.   
  25.    echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']. 
  26.         "?op=update\">"
  27.    echo "<table border=\"1\">"
  28.    echo "<tr><td>NIM</td><td><input type=\"text\" name=\"nim\" value=\" 
  29.         ".$data['nim']."\"></td></tr>"
  30.    echo "<tr><td>Nama Mahasiswa</td><td><input type=\"text\" 
  31.          name=\"namaMhs\" value=\"".$data['namaMhs']."\"></td></tr>"
  32.    echo "<tr><td>Tanggal Lahir</td><td>"
  33.   
  34.    // menampilkan pilihan combobox untuk tanggal 
  35.   
  36.    echo "<select name=\"tgl\">"
  37.    for ($tgl=1; $tgl<=31; $tgl++) 
  38.    { 
  39.        if ($tgl == $tanggal) echo "<option value=\" 
  40.                                   ".$tgl."\" selected>".$tgl
  41.                                   "</option>"
  42.        else echo "<option value=\"".$tgl."\">".$tgl."</item>"
  43.    } 
  44.    echo "</select>"
  45.   
  46.    // menampilkan pilihan combobox untuk bulan 
  47.   
  48.    echo "<select name=\"bln\">"
  49.    for ($bln=1; $bln<=12; $bln++) 
  50.    { 
  51.        if ($bln == $bulan) echo "<option value=\" 
  52.                                  ".$bln."\" selected>".$bln
  53.                                  "</option>"
  54.        else echo "<option value=\"".$bln."\">".$bln."</option>"
  55.    } 
  56.    echo "</select>"
  57.   
  58.    // menampilkan pilihan combobox untuk tahun 
  59.    // dibatasi hanya mulai th. 1940 - 2008 
  60.   
  61.    echo "<select name=\"thn\">"
  62.    for ($thn=1940; $thn<=2008; $thn++) 
  63.    { 
  64.        if ($thn == $tahun) echo "<option value=\" 
  65.                                 ".$thn."\" selected>".$thn
  66.                                 "</option>"
  67.        else echo "<option value=\"".$thn."\">".$thn."</option>"
  68.    } 
  69.    echo "</select>";    
  70.   
  71.    echo "</td></tr>"
  72.    echo "</table>"
  73.    echo "<input type=\"hidden\" name=\"nimLama\" value=\" 
  74.         ".$data['nim']."\">"
  75.    echo "<input type=\"submit\" name=\"submit\" 
  76.          value=\"Simpan Perubahan\">"
  77.    echo "</form>"
  78. else if ($op == "update"
  79.      { 
  80.         $nim = $_POST['nim']; 
  81.         $namaMhs = $_POST['namaMhs']; 
  82.         $nimLama = $_POST['nimLama'];         
  83.   
  84.         // menyambung tanggal sesuai format MySQL (thn-bln-tgl)  
  85.   
  86.     $tglLahir = $_POST['thn']."-".$_POST['bln']."-".$_POST['tgl']; 
  87.   
  88.         $query = "UPDATE mhs SET nim = '$nim', namaMhs = '$namaMhs', 
  89.                   tglLahir = '$tglLahir' WHERE nim = '$nimLama'"
  90.         $hasil = mysql_query($query); 
  91.         if ($hasil) echo "<p>Proses Update Sukses</p>"
  92.         else echo "<p>Proses Update Gagal</p>"
  93.      } 
  94. ?> 
  95. <table border="1"
  96. <tr> 
  97.     <th>No</th> 
  98.     <th>NIM</th> 
  99.     <th>Nama Mahasiswa</th> 
  100.     <th>Tgl Lahir</th> 
  101.     <th>Action</th> 
  102. </tr> 
  103.   
  104. <?php 
  105.   
  106. $no = 1; 
  107. $query = "SELECT * FROM mhs"
  108. $hasil = mysql_query($query); 
  109. while ($data = mysql_fetch_array($hasil)) 
  110.    echo "<tr>"
  111.    echo "<td>".$no."</td>"
  112.    echo "<td>".$data['nim']."</td>"
  113.    echo "<td>".$data['namaMhs']."</td>"
  114.    echo "<td>".$data['tglLahir']."</td>"
  115.    echo "<td><a href=\"".$_SERVER['PHP_SELF']."?op=edit&nim= 
  116.         ".$data['nim']."\">Edit</a></td>"
  117.    echo "</tr>"
  118.    $no++; 
  119. ?> 

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:

  1. 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 Smile

Tagg :

5 Reply :

  1. makasih ilmunya....kalo untuk textarea gimna caranya supaya muncul databse di form edit, codenya ??? coba cara klo text n ndak mau

    BalasHapus
  2. Terima kasih banyak sobat...sangat membantu posting nya...

    BalasHapus
  3. Terima kasih banyak sobat...sangat membantu posting nya...

    BalasHapus
  4. Kenapa pada saat tanggal lahir di update nilai yang ada di database justru menjadi 0000-00-00? Mohon jawabannya

    BalasHapus
    Balasan
    1. karena format tanggal di mysql itu yyyy/mm/dd jadi dibalik format post nya

      Hapus

Jika ada pertanyaan atau request,Komentar pada tab blogger akan lebih memudahkan saya untuk membalasnya karena lebih mudah melakukan pengecekan komentar.