Tutorial PHP dan MongoDB pada Ubuntu – Part 3

Pada tutorial lalu sudah dijelaskan cara menambahkan data pada MongoDB dengan PHP. Sekarang saya coba bahas cara sederhana mengubah / edit data pada MongoDB dengan PHP. Hal yang penting saat masuk ke update data adalah “apa pembeda dari data yang mau kita update”. Tutorial ObjectId pada MongoDB lalu saya sempat buat agar sedikit nyambung apa itu “_id” dan penerapan kasus pada update data artikel ini. Jadi, silahkan baca terlebih dahulu ya tentang ObjectId pada MongoDB.

Pada MongoDB, untuk melakukan proses update data dapat menggunakan method “update()”. Untuk lebih lengkapnya bisa baca detail lengkapnya di docs MongoDB soal method ini.

Pada proses update ini, saya sedikit ubah tampilan view.php dari view.php tutorial sebelumnya agar lebih enak dilihat. Full source code view.php seperti dibawah ini :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
include_once("connect.php");

$dtbuku = $db->dtbuku; // select collection atau tablenya

$databuku = $dtbuku->find(); // ambil semua data pada collection buku

?>

<html>
<head>
<title>Tutorial PHP Mongo Part 1</title>
</head>
<body>
<div id="list">
<?php if( $databuku->count() > 0  ):  // cek apa databuku kosong atau tidak ?>
<ul>
  <?php foreach($databuku as $doc):  // looping data, dan pemanggilan field dalam bentuk array ?>
    <li>
      <?php echo $doc['judul']; ?> - [ <a href='edit.php?id=<?php echo $doc['_id']; ?>'>EDIT</a> ]
      <ul>
        <li>Harga : <?php echo $doc['harga']; ?> IDR</li>
        <li>Halaman : <?php echo $doc['halaman']; ?></li>
        <li>Stok : <?php echo $doc['stok']; ?></li>
      </ul>
    </li>
  <?php endforeach; ?>
</ul>

<?php else: ?>
<p>Data kosong</p>
<?php endif; ?>

<div id="opr">
  <a href="add.php">Tambah Data</a>
</div>

</div>
</body>
</html>

Jika dijalankan akan terlihat seperti dibawah ini.

tutorial php mongodb part 3 - #1
tutorial php mongodb part 3 – #1

Oke, sekarang terlihat jelas terdapat fungsi EDIT dimana pada fungsi EDIT tersebut saya mengirimkan id dimana isi dari id adalah ObjectId (_id) tiap document.

Sekarang kita akan buat tampilan dari proses edit. Saya buat file dengan nama edit.php, lalu saya isi code seperti dibawah ini.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
include_once("connect.php");
$dtbuku = $db->dtbuku; // select collection atau tablenya

// ambil ID dari parameter GET
$id = $_GET['id'];

if(isset($_POST['btn_submit'])) { // jika tombol diklik
  // proses update ke collection dtbuku

  // simpan data update ke variable array
  $arr_data_update = array(
    "judul" => $_POST['judul'],
    "harga" => $_POST['harga'],
    "halaman" => $_POST['halaman'],
    "stok" => $_POST['stok']
  );

  // array sebagai where atau kondisi update
  $arr_condition = array(
    "_id" => new MongoId($id)
  );

  // proses update
  $dtbuku->update(
    $arr_condition,
    $arr_data_update   
  );

  // arahkan ke file view.php
  Header('Location: view.php');
}else{

  if( isset($id) ) {
    // ambil data buku berdasarkan _id

    $where = array(
      "_id" => new MongoId($id)
    );

    // proses ambil data berdasarkan _id
    $databuku = $dtbuku->findOne($where);
  }

}

?>

<html>
<head>
  <title>Tutorial PHP Mongodb Part 3</title>
</head>
<body>
  <div id="form-add">
    <form method="post"/>
      <p>Judul : <input type="text" name="judul" value="<?php echo $databuku['judul']; ?>" /></p>
      <p>Harga : <input type="text" name="harga" value="<?php echo $databuku['harga']; ?>" /></p>
      <p>Halaman : <input type="text" name="halaman" value="<?php echo $databuku['halaman']; ?>"  /></p>
      <p>Stok : <input type="text" name="stok" value="<?php echo $databuku['stok']; ?>" /></p>
      <p><input type="submit" name="btn_submit" value="Ubah" /></p>
    </form>
  </div>
</body>
</html>

Hampir sama seperti proses penambahan data. Bedanya pada tampilan ini, kita ambil data dari data yang dipilih oleh user dimana pembedanya adalah _id yang dikirimkan melalui url. Setelah di query ke MongoDB, saya tempel ke tiap masing-masing form agar dapat dilihat dan diedit oleh user.

Pada kode diatas, terdapat fungsi MongoId(). Fungsi tersebut adalah untuk membuat dan men-set _id yang ada pada MongoDB. Apabila user telah menekan tombol submit, seperti biasanya kita collect data yang ada diinputkan oleh user. Lalu setelah data dikumpulkan, lakukan proses update dengan perintah update pada mongodb.

Sintax mongodb untuk proses update pada php lengkapnya bisa anda lihat pada documentasi php berikut : http://php.net/manual/en/mongocollection.update.php

Jika sudah berhasil melakukan update, saya redirect ke halaman view.php. Dan selesai sampai disini ya tutorial php dan mongodb pada ubuntu.

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: