Cara Membuat CRUD dengan PHP dan MySQL untuk Pemula (Update) – 2

Kita lanjut bahas cara membuat CRUD dengan PHP dan MySQL untuk pemula. So.. mari kita lanjut. Sampai mana ya kita?

Ohiya.. postingan ini masih membahas bagian U alias Update dari sistem CRUD (Create Read Update Delete). Karena postingan sebelumnya rupanya sudah terlalu panjang. Jadi, supaya tetap enak dibaca dan nggak bikin pusing, akhirnya dipecah.

Part III bagian 2. Gitu mungkin ya bacanya. Atau.. bagian keduanya bagian ketiga. Bisa juga. Atau bebas deh.. hihi.

Lanjut..

Kita flashback postingan sebelumnya. Kemarin kita sudah bahas sampai sukses menampilkan data yang berasal dari variabel global $_GET. Juga dengan security-nya bila ada yang iseng.

By the way, Anda yang baru bergabung ke sini, Anda bisa membaca tutorial sebelumnya di: Membuat CRUD dengan PHP dan MySQL untuk Pemula (Update) – 1.

Sekarang yang kita bahas adalah cara mendapatkan dan menampilkan seluruh data yang ada dengan id unik datanya.

aneiqbal_simple_crud_update_6
id unik

Anda bisa lihat gambar di atas. Ada dua lingkaran; merah dan hijau. Kita akan menampilkan data-data yang ada pada lingkaran hijau. Hmm.. bukan hijau, tapi warna tosca.

Okay. Are you ready?

Langsung buka text editor favorit kalian gaes. Dan buka file edit.php yang sudah dibuat sebelumnya.

<?php
$id = (isset($_GET['id']))?$_GET['id']:'';

//coba menampilkan data yang diambil dari $_GET
echo $id;
?>

Yap. Seperti di atas rupa codingan edit.php terakhir. Masih sama kan? Di sini akan kita tambah codingannya berupa pemanggilan file koneksi database dan query untuk mengambil datanya.

Pertama, kita panggil file koneksi databasenya. Sudah pasti kita butuh itu kalau ingin melakukan query atau pengambilan data dari database. Kita tambahkan include(‘koneksi.php’); di paling atas pada coding di atas.

Kalau Anda bingung darimana asal file koneksi.php, Anda sebaiknya lihat postingan membuat koneksi PHP terlebih dahulu. Jika sudah, silakan lanjut baca ke bawah.

Sekarang, begini rupa dari file edit.php.

<?php
include('koneksi.php');
$id = (isset($_GET['id']))?$_GET['id']:'';

//coba menampilkan data yang diambil dari $_GET
echo $id;
?>

Dan kalau kita jalankan file tersebut, tidak ada perubahan tampilan apa-apa. Tenang.. don’t worry. The next is.. kita tambahkan coding query select-nya.

Di postingan Membuat CRUD dengan PHP dan MySql untuk Pemula (Read), kita sudah singgung sedikit soal query select. Bentuk querynya hampir sama namun ditambah sedikit.

Kalau di postingan tersebut, kita buat querynya begini: select * from mahasiswa. Ini untuk menampilkan seluruh data yang ada pada table mahasiswa.

Nah kalau case kita saat ini adalah mendapatkan data berdasarkan id unik datanya. Jadi, kita perlu tambah parameter atau kondisi pada querynya. Caranya adalah dengan menambahkan where. Look at this.

select * from mahasiswa where id = ‘$id’

Karena parameter yang kita gunakan adalah id unik data, maka kita harus arahkan kondisinya ke kolom/field yang memuat id unik data. Sehingga ditulislah id pada query di atas.

Kalau querynya dibahasakan, begini bunyinya: pilih data di semua kolom/field yang ada di table mahasiswa, yang kolom/field id nya memiliki nilai $id.

So.. begini posisi terakhir file edit.php.

<?php
include('koneksi.php');
$id = (isset($_GET['id']))?$_GET['id']:'';

$query = mysqli_query($connect, "select * from mahasiswa where id='$id'");

//coba menampilkan data yang diambil dari $_GET
echo $id;
?>

Kita tampung hasil querynya ke variabel $query. Dan kalau kita coba var_dump variabel tersebut, hasilnya seperti ini.

aneiqbal_simple_crud_update_7
hasil var_dump $query

Perhatikan [“num_rows”]=> int(1) pada hasil var_dump di atas. num_rows merupakan jumlah baris yang dihasilkan dari query yang dieksekusi. Sedangkan => int(1) adalah jumlahnya dan bertipe integer.

Jadi, kita dapat simpulkan bahwa query di atas berhasil menangkap satu baris data berdasarkan kondisi yang kita berikan pada query tadi.

Ini codingan var_dump-nya kalau Anda mau coba jalankan juga.

<?php
include('koneksi.php');
$id = (isset($_GET['id']))?$_GET['id']:'';

$query = mysqli_query($connect, "select * from mahasiswa where id='$id'");
var_dump($query);

//coba menampilkan data yang diambil dari $_GET
echo $id;
?>

Belum pusing kan? Mantap.. Terus lanjut ya..

Selanjutnya yang harus kita lakukan adalah mengambil data dan menyimpannya dalam bentuk array dari hasil query yang tersimpan dalam variabel $query tadi. Seperti ini bentuknya: mysqli_fetch_array($query).

Hasil eksekusi mysqli_fetch_array($query) ini kita tampung ke variabel baru bernama $data. So.. begini posisi terakhir file edit.php-nya.

<?php
include('koneksi.php');
$id = (isset($_GET['id']))?$_GET['id']:'';

$query = mysqli_query($connect, "select * from mahasiswa where id='$id'");
$data = mysqli_fetch_array($query);

//coba menampilkan data yang diambil dari $_GET
echo $id;
?>

Kalau kita jalankan, masih belum ada perubahan tampilan. Karena memang belum kita tampilkan datanya.

aneiqbal_simple_crud_update_8
datanya belum ditampilkan

Kalau kita coba var_dump variabel $data, maka kita baru akan melihat perubahan. Kolom/field beserta isinya yang berbentuk array akan tampil di web browser Anda.

aneiqbal_simple_crud_update_9
hasil var_dump data

See? Semua data dimunculkan berdasarkan id unik datanya. Selanjutnya, tinggal kita tampilkan data tersebut ke form edit yang bentuknya itu sama dengan form input.

Biar lebih cepat, Anda bisa langsung copy isi file input.html ke file edit.php. Tapi.. best practice-nya sih jangan dicopy. Anda ketik ulang. Biar makin terbiasa ngoding.

So.. ini posisi edit.php saat ini.

<?php
include('koneksi.php');
$id = (isset($_GET['id']))?$_GET['id']:'';

$query = mysqli_query($connect, "select * from mahasiswa where id='$id'");
$data = mysqli_fetch_array($query);

//coba menampilkan data yang diambil dari $_GET
echo $id;
?>

<!DOCTYPE html>
<html>
<head>
 <title>Form Input Data</title>
</head>
<body>
 <form action="prosesSimpan.php" method="post">
  NIM:
  <input type="text" name="nim"><br>
  Nama:
  <input type="text" name="nama"><br>
  Jenis Kelamin:
  <select name="jenis_kelamin">
   <option value="">Pilih</option>
   <option value="P">Pria</option>
   <option value="W">Wanita</option>
  </select><br>
  Tanggal Lahir:
  <input type="text" name="tanggal_lahir"><br>
  Alamat:
  <textarea name="alamat"></textarea><br>
  Jurusan:
  <input type="text" name="jurusan"><br>
  <input type="submit" value="Simpan"> <input type="reset" value="Reset">
 </form>
</body>
</html>

Ada yang mesti kita ubah gaes. Pertama, kita hapus baris 8 dan 9. Karena kita sudah nggak butuh itu. Lalu ubah “Form Input Data” menjadi “Form Edit Data” di line 15.

Next.. pada bagian atribut action, di line 18, kita ubah filenya. File proses untuk mengupdate data kita beri nama prosesUpdate.php. Jadi, ganti dengan nama tersebut.

So, begini sekarang.

<?php
include('koneksi.php');
$id = (isset($_GET['id']))?$_GET['id']:'';

$query = mysqli_query($connect, "select * from mahasiswa where id='$id'");
$data = mysqli_fetch_array($query);

?>

<!DOCTYPE html>
<html>
<head>
 <title>Form Edit Data</title>
</head>
<body>
 <form action="prosesUpdate.php" method="post">
  NIM:
  <input type="text" name="nim"><br>
  Nama:
  <input type="text" name="nama"><br>
  Jenis Kelamin:
  <select name="jenis_kelamin">
   <option value="">Pilih</option>
   <option value="P">Pria</option>
   <option value="W">Wanita</option>
  </select><br>
  Tanggal Lahir:
  <input type="text" name="tanggal_lahir"><br>
  Alamat:
  <textarea name="alamat"></textarea><br>
  Jurusan:
  <input type="text" name="jurusan"><br>
  <input type="submit" value="Simpan"> <input type="reset" value="Reset">
 </form>
</body>
</html>

Selanjutnya, kita buat variabel-variabel untuk menampung datanya gaes. Variabel-variabel tersebut yang bakal dipake untuk mengisi value dari inputan form. Ini variabel-variabelnya yang ditambah ke edit.php.

<?php
include('koneksi.php');
$id = (isset($_GET['id']))?$_GET['id']:'';

$query = mysqli_query($connect, "select * from mahasiswa where id='$id'");
$data = mysqli_fetch_array($query);

$id = $data['id'];
$nim = $data['nim'];
$nama = $data['nama'];
$jenis_kelamin = $data['jenis_kelamin'];
$tanggal_lahir = $data['tanggal_lahir'];
$alamat = $data['alamat'];
$jurusan = $data['jurusan'];
?>

Ada variabel $id, $nim, $jenis_kelamin, $tanggal_lahir, $alamat, dan $jurusan. Setelah variabel dibuat, kita masukkan ke dalam inputan-nya dengan atribut value. Ohiya, atribut value hanya untuk elemen input. Untuk textarea dan select, beda lagi caranya.

Perhatikan posisi terakhir codingan edit.php berikut.

<?php
include('koneksi.php');
$id = (isset($_GET['id']))?$_GET['id']:'';

$query = mysqli_query($connect, "select * from mahasiswa where id='$id'");
$data = mysqli_fetch_array($query);

$id = $data['id'];
$nim = $data['nim'];
$nama = $data['nama'];
$jenis_kelamin = $data['jenis_kelamin'];
$tanggal_lahir = $data['tanggal_lahir'];
$alamat = $data['alamat'];
$jurusan = $data['jurusan'];

?>

<!DOCTYPE html>
<html>
<head>
 <title>Form Edit Data</title>
</head>
<body>
 <form action="prosesUpdate.php" method="post">
  NIM:
  <input type="text" name="nim" value="<?php echo $nim?>"><br>
  Nama:
  <input type="text" name="nama" value="<?php echo $nama?>"><br>
  Jenis Kelamin:
  <select name="jenis_kelamin">
   <option value="">Pilih</option>
   <option value="P" <?php echo $jenis_kelamin == 'P' ? 'selected="selected"' : '' ?>>Pria</option>
   <option value="W" <?php echo $jenis_kelamin == 'W' ? 'selected="selected"' : '' ?>>Wanita</option>
  </select><br>
  Tanggal Lahir:
  <input type="text" name="tanggal_lahir" value="<?php echo $tanggal_lahir?>"><br>
  Alamat:
  <textarea name="alamat"><?php echo $alamat?></textarea><br>
  Jurusan:
  <input type="text" name="jurusan" value="<?php echo $jurusan?>">
  <input type="hidden" name="id" value="<?php echo $id ?>">
  <br>
  <input type="submit" value="Simpan"> <input type="reset" value="Reset">
 </form>
</body>
</html>

Pada select, kita manfaatkan operator ternary PHP supaya otomatis terpilih sesuai dengan pilihan yang sudah tersimpan di database. Kalo textarea, tinggal echo PHP saja di antara tag pembuka dan tag penutupnya.

Jangan lupa tambahkan coding seperti di baris ke 46. Kenapa hidden? karena informasi tersebut nggak perlu diedit & ditampilkan, namun tetap harus dikirim ke proses update sebagai id unik data.

Id unik data ini sebagai kunci proses keberhasilan update data yang diedit. Bila nggak ada ini, fatal akibatnya. Semua data yang ada di table akan terupdate!

Lalu kita preview di browser.

form edit yang berisi data
form edit yang berisi data

Data-data berhasil kita munculkan di tiap inputannya. So, kita stop dulu sampe sini karena sudah kepanjangan. Next.. kita akan coding untuk proses updatenya. Codingnya akan ada di file prosesUpdate.php.

Next episode here: Membuat CRUD dengan PHP dan MySQL untuk Pemula (Update) – 3.

 

Share yuk, ke:

Leave a Comment