Save Edit Delete Data Dari Database

Tutorial Save Edit Delete Data Dari Database menjelaskan cara menyimpan data ke database, mengedit data yang telah disimpan, dan menghapus data yang tidak diperlukan. Menyimpan, mengedit, dan menghapus data adalah merupakan hal yang paling dasar yang harus diketahui dalam membuat website yang dinamis. Dengan menguasai ketiga hal tersebut anda akan bisa membuat website dalam bentuk apapun.

Membuat Database dan Tabel

Pertama yang dilakukan adalah mempersiapkan database dan table. Sebagai contoh anda akan membuat sebuah database dengan nama "absensi_siswa" bisa gunakan sql 
[code=sql]create database absensi_siswa;[/code]

Selanjutnya membuat table "siswa", dengan struktur seperti

Nama Field Tipe Data Keterangan
nis varchar(20) Nomor Induk siswa, Primary Key
nama varchar(50)  
jenis_kelamin char(1)  
tgl_lahir date  

atau gunakan sql berikut:
[code=sql]CREATE TABLE `absensi_siswa`.`siswa` (
  `nis` varchar(20)  NOT NULL,
  `nama` varchar(50)  NOT NULL,
  `jenis_kelamin` char(1)  NOT NULL,
  `tgl_lahir` date  NOT NULL,
  PRIMARY KEY (`nis`)
)
ENGINE = MyISAM;[/code]

Membuat Koneksi ke Database Dengan PHP

Sebelum lanjut kelangkah berikutnya akan dijelaskan cara untuk membuat koneksi ke database menggunakan php. Koneksi ke database dibuat menggunakan funsi mysql_connect. fungsi mysql_connect memiliki parameter seperti:

mysql_connect($server, $username, $password)

$server adalah alamat dari server mysql, jika dikomputer lokal biasanya "localhost", setiap hosting provider akan memberikan informasi ini saat pendaftaran hosting selesai.

$username adalah user yang digunakan untuk melakukan koneksi ke database, dikomputer lokal biasanya "root", setiap hosting provider juga akan memberikan fasilitas untuk membuat user ini.

$password adalah password dari user bersangkutan, dikomputer lokal biasanya tanpa password. di hosting password ini ditentukan pada saat membuat user.

jadi untuk melakukan koneksi ke database akan menggunakan kode seperti:

mysql_connect("localhost", "root", "'); // atau $conn = mysql_connect("localhost""username""password");

Setelah selesai melakukan koneksi ke database, langkah selanjutnya adalah menentukan database yang digunakan dengan menggunakan fungsi mysql_select_db, seperti:

mysql_select_db("nama_database");// misal: mysql_select_db("absensi_siswa");

Jika sudah bisa melakukan koneksi dan menentukan database yang digunakan maka langkah selanjutnya menyimpan,mengedit dan mengapus data sudah bisa dilakukan seperti di bawah.

Membuat Form Input Siswa

Selanjutnya adalah membuat form input siswa tempat user memasukkan data siswa. bisa gunakan html di bawah
[code=html rel=http://tryit.myphptutorials.com/tutorials-php-33/form_siswa.php]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Form Input Siswa</title></head>
<body>
 <form name="formSiswa" id="formSiswa" method="post" action="save_siswa.php">
  <dl>
    <dt>NIS</dt>
    <dd><input name="nis" id="nis" type="text"/></dd>
    <dt>Nama</dt>
    <dd><input type="text" name="nama" id="nama"/></dd>
    <dt>Jenis Kelamin</dt>
    <dd>
      <input type="radio" name="jenis_kelamin" id="laki" value="L"/> Laki Laki
      <input type="radio" name="jenis_kelamin" id="prm" value="P"/> Perempuan
    </dd>
    <dt>Tanggal Lahir</dt>
    <dd>
      <input type="text" name="tanggal" id="tanggal" size="5"/>
      <input type="text" name="bulan" id="bulan" size="5"/>
      <input type="text" name="tahun" id="tahun" size="5"/>
    </dd>
    <dt></dt>
    <dd><input type="submit" name="save" value="save" /></dd>
  </dl>
 </form>
</body>
</html>[/code]

kemudian simpan file dengan nama "form_siswa.php".

Menyimpan Data Siswa

Setelah selesai membuat form input siswa, yang perlu dibuat selanjutnya adalah kode php untuk menyimpan data siswa. Buatlah sebuah file baru dengan nama "save_siswa.php" dan simpan di tempat yang sama dengan file "form_siswa.php" yang telah dibuat sebelumnya. Mungkin ada pertanyaan kenapa nama filenya "save_siswa.php" bukan "simpan_siswa.php". Karena sebelumnya pada saat membuat form input siswa (baris 5 file form_siswa.php), attribute action pada tag <form/> diisi dengan action="save_siswa.php". Ini artinya memberitahukan kepada browser, bahwa yang akan menangani data dari form bersangkutan adalah file "save_siswa.php". file save_siswa.php akan seperti:
[code=php rel=http://tryit.myphptutorials.com/tutorials-php-33/form_siswa.php]<?php
$nis = $_POST['nis'];
$nama = $_POST['nama'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$tglLahir = $_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tanggal'];
//koneksi database
$conn = mysql_connect("dbhost","db_user","db_password");
mysql_select_db("absensi_siswa");

$query = "insert into siswa set nis='$nis',nama='$nama', jenis_kelamin='$jenis_kelamin',tgl_lahir='$tglLahir'";
$hasil = mysql_query($query);
if($hasil){
echo "Data siswa telah disimpan";
}else{
echo "Error! gagal menyimpan data siswa:".mysql_error();
}
?>[/code]

Di baris 2-5 digunakan untuk menyimpan data form yang telah dikirim ke variabel yang bersesuaian. Seperti $nis = $_POST['nis'], mengapa menggunakan $_POST['nis']. Karena pada file form_siswa.php di tag <form/> (baris 5) atribut method diisi dengan method="post" yang artinya data dikirim dengan method POST dan di baris 8 file form_siswa.php atribut name dari <input/> field untuk meng-input NIS diset name="nis". Lebih lengkapnya ada di tutorial Penanganan HTML form di PHP. Baris 7 adalah untuk melakukan koneksi ke database. Silahkan ganti "dbhost" dengan host database anda, "db_user" dengan user dari database dan "db_password" dengan password database. Kemudian di baris 8 untuk menentukan database yang akan digunakan. Baris 10 untuk membuat sql query untuk menyimpan data ke database. Baris 11 untuk mengeksekusi sql query yang telah dibuat di baris 10. Baris selanjutnya adalah melakukan pengecekan apakah data berhasil disimpan atau tidak.

Menampilkan Data

Setelah berhasil menyimpan data ke database, selanjutnya adalah menampilkan data. Untuk menampilkan data cukup mudah. Gunakan script php di bawah untuk menampilkan data.
[code=php rel=http://tryit.myphptutorials.com/tutorials-php-33/data_siswa.php]<?php
$conn = mysql_connect("dbhost", "db_user", "db_password");
mysql_select_db("absensi_siswa");

if($_GET['action']  == 'delete'){
mysql_query("delete from siswa where nis='".mysql_real_escape_string($_GET['id'])."'");
}

$query = "select * from siswa order by nama";
$rowSet = mysql_query($query);
echo '<a href="form_siswa.php">Input Siswa Baru</a>';
echo '<table border="1">';
echo '<tr>';
echo '<td>NIS</td>';
echo '<td>Nama</td>';
echo '<td>Jenis Kelamin</td>';
echo '<td>Tanggal Lahir</td>';
echo '<td>Action</td>';
echo '</td>';
while($row = mysql_fetch_array($rowSet)){
echo '<tr>';
echo '<td>'.$row['nis'].'</td>';
echo '<td>'.$row['nama'].'</td>';
echo '<td>'.($row['jenis_kelamin'] == 'L' ? 'Laki Laki' : 'Perempuan').'</td>';
echo '<td>'.$row['tgl_lahir'].'</td>';
echo '<td>';
echo '<a href="data_siswa.php?id='.$row['nis'].'&action=delete">Delete</a>';
echo ' | <a href="form_edit_siswa.php?id='.$row['nis'].'">Edit</a>';
echo '</td>';
echo '</tr>';
}
echo '</table>';
?>[/code]

Simpan dengan nama data_siswa.php. kode di atas menampilkan data siswa ke dalam sebuah table yang disertai dengan link edit dan delete. Di baris 5-7 anda bisa melihat cara menghapus data dari database. Pada saat link delete diklik browser akan diarahkan ke url seperti data_siswa.php?id=1000&action=delete, pada saat itu kode pada baris 5-7 akan dieksekusi.

Edit Data

Yang terakhir adalah membuat script untuk mengedit data. Pertama yang dilakukan adalah membuat file form_edit_siswa.php. Form edit siswa akan seperti di bawah.
[code=php rel=http://tryit.myphptutorials.com/tutorials-php-33/data_siswa.php]
<?php
$conn = mysql_connect("dbhost", "db_user", "db_password");
mysql_select_db("absensi_siswa");
$query = "select * from siswa where nis='".mysql_real_escape_string($_GET['id'])."'";
$result = mysql_query($query);
$siswa = mysql_fetch_array($result);
?>
<form name="formSiswa" id="formSiswa" method="post" action="edit_siswa.php">
  <dl>
    <dt>NIS</dt>
    <dd><input name="nis" id="nis" type="text" value="<?=$siswa['nis'];?>" readonly="readonly"/></dd>
    <dt>Nama</dt>
    <dd><input type="text" name="nama" id="nama" value="<?= $siswa['nama'];?>"/></dd>
    <dt>Jenis Kelamin</dt>
    <dd>
      <input type="radio" name="jenis_kelamin" id="laki" value="L" <? echo $siswa['jenis_kelamin'] == 'L'  ? 'checked="checked"' : '';?>/> Laki Laki 
      <input type="radio" name="jenis_kelamin" id="prm" value="P" <? echo $siswa['jenis_kelamin'] == 'P'  ? 'checked="checked"' : '';?> /> Perempuan
    </dd>
    <dt>Tanggal Lahir</dt>
    <dd>
<?php $tgl_lahir = explode('-', $siswa['tgl_lahir']); ?>
      <input type="text" name="tanggal" id="tanggal" size="5" value="<?= $tgl_lahir[2];?>"/>
      <input type="text" name="bulan" id="bulan" size="5" value="<?=$tgl_lahir[1];?>"/>
      <input type="text" name="tahun" id="tahun" size="5" value="<?= $tgl_lahir[0];?>"/>
    </dd>
   <dt></dt>
    <dd><input type="submit" name="save" value="save" /></dd>
  </dl>
 </form>
[/code]

Baris 2-6 pada kode di atas berfungsi untuk mengambil data siswa yang sedang diedit. Pada baris selanjutnya berfungsi untuk menampilkan data yang sedang diedit. Ini dilakukan dengan menambahkan atribut value pada masing masing element form dengan data yang bersesuian.

Langkah kedua adalah membuat file edit_siswa.php untuk menyimpan perubahan data yang dilakukan pada form_edit_siswa. Gunakan script di bawah dalam file edit_siswa.php.
[code=php rel=http://tryit.myphptutorials.com/tutorials-php-33/data_siswa.php]
<?php
$nis = $_POST['nis'];
$nama = $_POST['nama'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$tglLahir = $_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tanggal'];
//koneksi database
$conn = mysql_connect("dbhost","db_user","db_password");
mysql_select_db("absensi_siswa");
$query = "update siswa set nama='$nama', jenis_kelamin='$jenis_kelamin', tgl_lahir='$tglLahir' where nis='$nis'";
$hasil = mysql_query($query);
if($hasil){
echo "Data siswa telah disimpan";
}else{
echo "Error! gagal menyimpan data siswa:".mysql_error();
}
?>
[/code]

Save Delete Edit Data Selesai

Pada tahap ini anda telah selesai membuat script php sederhana untuk menyimpan, menghapus, meng-edit data. Tentunya masih perlu disempurnakan, seperti menambahkan Validasi Form. Jika ada pertanyaan silahkan ditanyakan di AskMyPHPtutorials.