Codeigniter dasar – Menampilkan dan Menghapus Data

Setelah berhasil memasukkan data ke table, sekarang cara untuk menampilkan data tersebut. Agar lebih simple, saya akan membuat tampilan 1 tampilan saja. Jadi di bawah form input data, akan terdapat table untuk menampilkan data yang telah dimasukkan tadi. Seperti gambar berikut ini :

Lets go igniting the code :D….





Kalo dilihat dari algoritmanya, ketika kita mengakses daily/index, maka yang dilakukan adalah mengambil data dan menampilkannya (secara sederhananya seperti itu.) Sehingga controller daily pada bagian function kita tambahkan menjadi seperti berikut :

<?php

class Daily extends Controller

{

… //kode sebelumnya

function index()

{

$data['query'] = $this->MDaily->getAll();

$this->load->view('daily/input',$data);

}

...//kode sebelumnya

}

1 baris untuk mengakses Model, kemudian baris selanjutnya menampilkan hasilnya ke dalam view.

Jangan lupa, pada model kita buat fungsi getAll untuk mengambil data dari table. Sehingga model Mdaily isinya sebagai berikut :

<?php

class MDaily extends Model

{

… //kode sebelumnya

function getAll()

{

$this->db->order_by('id','ASC');

$query = $this->db->get('daily');

return $query->result();

}

}

Dengan menggunakan Active Record pada codeigniter, perintah SQL digantikan dengan seperti di atas. Bisa juga dengan $this->db->query(“SELECT * FROM daily ORDER BY ‘id’ ASC ”); sama saja, untuk Active Record Codeigniter dapat dibaca pada user_guide Codeiginter. Sangat lengkap di situ.

OK, selanjutnya setelah membuat Controller dan Model, sekarang menuju View. Kita buat view untuk menampilkan datanya. Saya beri nama show.php dan disimpan di views/daily/show.php Isinya sebagai berikut :

<b>Daily Notes</b>

<table border="1">

<tr>

<tr>

<th>No</th>

<th>Date</th>

<th>Name</th>

<th>Amount</th>

<th>Delete</th>

</tr>

</tr>

<?php

$i=0;

foreach ($query as $row){

$i++;

echo "<tr class=\"record\">";

echo    "<td>$i</td>";

echo    "<td>$row->date</td>";

echo    "<td>$row->name</td>";

echo    "<td>$row->amount</td>";

echo    "<td><a href=".base_url()."index.php/daily/delete/$row->id>Delete</a></td>";

echo  "</tr>";

}

?>

</table>

Kenapa tidak full halaman html? Karena halaman ini cukup disisipkan pada input.php, kalo pada php biasa kita pakai include(show.php). Sehingga pada input.php ditambahkan baris berikut :

<!DOCTYPE HTML>

<html lang="en-US">

<head>

<title>Daily Notes</title>

<meta charset="UTF-8">

</head>

<body>

...//kode sebelumnya

<div id="list">

<?php $this->load->view('daily/show') ?>

</div>

</body>

</html>

Oh iya, pada show.php terdapat link untuk menghapus data, karena sudah terlanjur ya buat aja function untuk menghapus data, tambahkan funcion delete pada controller, sehingga controller menjadi seperti berikut :

<?php

class Daily extends Controller

{

...//kode sebelumnya

function delete($id){

$this->db->delete('daily', array('id' => $id));

redirect('daily/index');

}

}

Mudah bukan? Silahkan dicoba untuk memasukkan data dan menghapus data. Semoga berhasil..

Tutorial selanjutnya, kita coba memasukkan data dengan ajax menggunakan jquery ya?? OK!! Mudah ko, menurut saya lho…

Happy Igniting..


  • affu adi matera

    ok trims bnyak yua…bs krimin contoh yg laen g? tlg krim ke email sya ajjh ne [email protected]

  • Mau tanya ni mas..
    fungsi deletenya kenapa ga mau jalan ya?
    padahal kalo dah di echo $id nya udah betul,
    masih bingung masalahnya dimana, setiap kali dipilih delete keluarannya seperti ini http://localhost/paspor/index.php/daily/daily/delete/3

    mohon pencerahannya
    terimakasih

  • Salam kenal mas dudu & semua 😉

    Just sharing aja.

    pake url helper aja, pas link delete nya jadi:

    echo “id”).”\” >Delete“;

  • maksud saya jd:

    site_url(“/daily/delete/$row->id”).”\”

    • bisa juga pake itu 🙂 thx sarannya 🙂

  • agung

    mas dudu, saya sudah mencoba untuk mengekstrak file yg di download dr http://dudu.web.id/downloads/ci_ku.zip, setelah saya jalankan masih ada error, yaitu tampilan dr file show.php hanya berisi “; echo “; sampai 7 baris dan fungsi delete, edit juga belum bisa, apa ada setting yang lain?

    • Coba download lagi mas. Tadi saya lihat memang masih ada beberapa bagian yang perlu diperbaiki 😀

      file config.php di bagian $config[‘base_url’] itu masih ada kesalahan nama urlnya.

      Kemudian function delete pada controler di ubah menjadi

      function delete(){
      $id = $this->input->post(‘id’);
      $this->db->delete(‘daily’, array(‘id’ => $id));
      }

      Sudah buat databasenya? aksesnya di http://localhost/ci_ku/index.php/daily lho…

  • harry

    ijin donlot mas…
    pas saya extrak,folder .hg sama file .hgtags dan .hgignore itu gunanya utk apa mas??
    trus satu lg mas,pas input data,kan pake jquery,efek jquery nya apa mas???
    makasi mas….

  • .hg dan sejenisnya itu direktori kalo pake mercurial. Bisa cari tutorial mercurial source control management. Soalnya dulu saya lagi belajar mercurial.

    Jquery pada input data digunakan untuk memasukkan data menggunakan ajax. Silahkan baca setelah ini 🙂

    FIle yang di donlot kemungkinan masih ada error nya, karena saya dulu buatnya buru-buru, dalam waktu dekat akan saya perbaiki. Terimakasih….

  • mas .. kayak nya delete gak bisa jalan la..

    url : http://localhost/ci_ku/index.php/daily/daily/delete/1

    controller saya tulis kek gini

    function delete($id){
    $id = $this->input->post(‘id’);
    $this->db->delete(‘daily’, array(‘id’ => $id));
    redirect(‘daily/index’);
    }

    • harusnya di url menjadi http://localhost/ci_ku/index.php/daily/delete/1

      silahkan diperbaiki 🙂

      semoga berhasil…

    • hendry

      mas, untuk fungsi delete kan pake GET. jadi nggak perlu lagi code

      $id = $this->input->post(‘id’);

      seharusnya fungsi deletenya seperti ini

      function delete($id){
      $this->db->delete(‘daily’, array(‘id’ => $id));
      redirect(‘daily/index’);
      }

  • keyeeennn

    • terimakasih 🙂

  • dede iin

    mas ko tutor nya masih banyak yg eror..
    banyak muncul echo jadi ga tampil datanya…

    sayah coba mo download dah source nya dah ga ada link nya,,
    boleh minta mas source nya..
    kirim k email : [email protected]

    trims

    • error nya apa? bagian mana? Biar nanti bisa saya perbaiki 🙂

      memang tutorial ini ada bagian yang saya hilangkan, jadi mungkin banyak yg harus di sesuaikan. Saya punya tutorial tetapi memakai Codeigniter versi 2.0 jadi agak berbeda, silahkan download di sini http://www.dudu.web.id/download/codeigniter.zip

  • dede iin

    dah bisa tampil mas…
    tapi ko delete nya ga jalan,,,,

    ni eror nya :

    http://localhost/ci_ku/index.php/daily/delete/2

    An Error Was Encountered

    The URI you submitted has disallowed characters.

    tolong dibntu mas..
    lagie bljar dai no..

    1 lagie..
    link nya not found mas..

    trims

  • dede iin

    mas mas membuat repot…
    tolong di cek salahnya dmn ???

    maav maklum masih newbie.. hehe

    • Ok sama-sama. senang bisa membantu 🙂

  • dede iin

    kira2 eror yg char nya dibagian mn ea mas ???
    bingung nihhh.. dah mumet ga ketemu… hehe….

    makasih banyak mas buat bntuannya…

    • disalowed character, itu ada tanda petik di belakang angka 2,

      silahkan edit file views/daily/list.php, kalo punya saya ga error syntaxnya seperti ini

      <b>Daily Notes</b>
      	<table border="1">
      		<tr>
      			<th>No</th>
      			<th>Date</th>
      			<th>Name</th>
      			<th>Amount</th>
      			<th>Delete</th>
      			</tr>
      		</tr>
      		<?
      			$i=0;
      			foreach ($query as $row){
      			$i++;
      			echo "<tr class=\"record\">";
      			echo    "<td>$i</td>";
      			echo    "<td>$row->date</td>";
      			echo    "<td>$row->name</td>";
      			echo    "<td>$row->amount</td>";
      			echo    "<td><a href=".base_url()."index.php/daily/delete/$row->id>Delete</a></td>";
      			echo  "</tr>";
      			}
      		?>
      	</table>
      
  • dede iin

    oia mas… maav sebelumnya….
    yg download dari mas masih ada eror n delete ga jalan…
    untuk input jalan,, tampil ma delete yg lumz…

    eror nya :

    Daily Notes
    Date :
    Name :
    Amount :
    Daily Notes “; echo “”; echo “”; echo “”; echo “”; echo “”; echo “”; } ?>
    No Date Name Amount Delete
    $i $row->date $row->name $row->amount id>Delete

    mohon bantuannya,,,,

  • dede iin

    mas aku ganti ikutin apa yg d rubah..
    ko eror nya sama kaya yg tadi aku post erornya ???

    Daily Notes “; echo “”; echo “”; echo “”; echo “”; echo “”; echo “”; } ?>
    No Date Name Amount Delete
    $i $row->date $row->name $row->amount id>Delete

    • saya kurang mengerti maksudnya, karena yang saya tangkap errornya echo echo, phpnya ga kebaca atw gmn?

      atau bisa kasih scrinsut nya aja?

  • syeehab

    404 Page Not Found
    The page you requested was not found.
    klaw ada tlisan diatas knp nih?????

    • halamannya ga ada, linknya salah mungkin

  • syeehab

    kang dudu law bikin fungsi create gmn c?????

    • untuk?

      buat fungsi di controller, buat viewnya untuk form inputnya.. save bisa dilakukan di model 🙂

  • syeehab

    sblumnya trima ksih bgt ats jwbannya….
    nah klaw buat fungsi edit d controller scriptnya kyak gmn tuh…bsa cntohin g….

    • coba download source lengkap nya di github, mungkin bisa dipelajari sendiri

  • Ardian

    lam kenal mas dudu…
    mohon pencerahannya ni..
    sourcenya dah ku download.
    tapi muncul error di tabelnya ga keluar datanya.
    yang muncul seperti mas dede iin bilang.
    thanks sebelumnya….

  • Ardian

    maaf masssss…..
    dah ketemu problemnya….hehehehe
    makasih dah mau berbagi ni, ini berguna bgt buatku yg newbie

    • sama-sama 🙂

  • adryan

    mas.. maksudnya kode sebelumnya thu apa yach???

    • di artikel sebelumnya 🙂

  • adryan

    ewh.. maksudnya saya nanti masukkan kodenya apa mas??? bisa beri contoh.. habis saya ada tugas kuliah yg dikumpulkan selasa minggu depan tentang menampilkan dan mendelete. Mohon Pencerahan dan Pengajarannya Mas..

    • coba lihat artikel sebelumnya

  • adryan

    A PHP Error was encountered

    Severity: Notice

    Message: Undefined property: Daily::$MDaily

    Filename: controllers/daily.php

    Line Number: 19

    Fatal error: Call to a member function save() on a non-object in C:\xampp\htdocs\Borarsi_ci\application\controllers\daily.php on line 19

    sudah jadi… tetapi begini yang ditampilkan mas

    • modelnya belum di load, bisa di config atau langsung di controller juga bisa

  • lam kenal yah mas…

    Makasi yah mas buat artikelnya… habis tugas aku tuh di suruh buat input & delete..

    • sama-sama, semoga tugasnya berhasil 🙂

  • adryan

    caranya mas?? Mohon bantuannya…

    • //taruh di konstruktornya
      $this->load->model('MDaily');
      
  • adryan

    Mas Bantuin Donk.. masih tetap Eror Nie…. nda temukan object () di line 19

  • adryan

    mas kalau saya mau nambah edit codingnya gimana?? mohon bantuannya

  • syeehab

    mas dudu kalau bkin form search kyak d atas di controller sama nampilinnya gmn??
    mhon bntuannya

    • tunggu artikel selanjutnya ya 🙂

  • Juned

    bang dudu saya dah coba ikutin tutnya kok nemu error kaya gini ya data nya tidak tampil kemungkinan error nya dmn ya

    Daily Notes
    Date :
    Name :
    Amount :
    Daily Notes “; echo “”; echo “”; echo “”; echo “”; echo “”; echo “”; } ?>
    No Date Name Amount Delete
    $i $row->date $row->name $row->amount id>Delete

    • mungkin karena saya menggunakan

      <? .. ?>

      beberapa kasus tidak jalan, silahkan ganti dengan

      <?php ... ?>
  • awan kurniawan

    mau tanya nie…maklum msh awam di php
    untuk menampilkan 1 data terakhir yang baru saja kita input gmn ya….tolong reply email ya….mksh…

    • ubah query nya

  • Juned

    Terima-kasih bang dudu pencerahan dan ilmu nya..moga berkah

  • carol

    terima kasih mas, tutorialnya sangat membantu buat pemula seperti saya,
    kebetulan tugas PKL bikin web, dari kampusnya menganjurkan buatnya pake CI..
    jadi ada pencerahan, thx2, hohohoho

  • zaza

    Alhamdulillah,..bagus tutorialnya. sangat membantu,. terimakasih.
    Tapi maaf,saya mau tanya.pas menampilkan kok ada eror muncul warning seperti ini
    A PHP Error was encountered

    Severity: Warning

    Message: Invalid argument supplied for foreach()

    Filename: daily/show.php

    Line Number: 17
    kira-kira kenapa ya?? mohon koreksinya. terimakasih.

    • coba periksa lagi script anda, biasanya pada penulisan variabel. Untuk kasus ini saya tidak dapat menyimpulkan kesalahan karena saya tidak melihat script Anda.

  • mas Dudu,

    salam kenal, saya sedang belajar dari web-site mas dudu, sudah semakin mengerti aturan2 main dari CI, nah saya ada pertanyaan nih mas:

    untuk “function delete($id)” ditempatkan pada Controller, kenapa tidak ditempat pada Model? sedangkan saat Save (function save()) dan getAll (function getAll() ) di tempatkan pada Model.

    terimakasih mas, sukses selalu bersama kita semua.

    • Memang aturan main MVC di Codeigniter tidak terlalu sctrict seperti di Ruby On Rails. Sehingga kita diberikan kebebasan untuk meletakkan method/function pada controller atau model. Tergantung dari kebiasaan programmernya. bahkan saya pernah menemukan program CI yang hanya ada controller dan view tanpa model :hehe kodenya jadi spaghetti code.
      Kalo pada kasus tersebut kenapa tidak di model karena saya berpikir scriptnya pendek jadi saya letakkan di controller saja 😀

  • sip mas dudu… terimakasih buat share nya.. 🙂

    sukses selalu.

  • nophil

    pas nyoba saya delet yang muncul ini mas dudu,, The URI you submitted has disallowed characters. apanya yah??

    • salah di URL nya, dicek lagi programmnya 🙂

  • newbie

    Mas kasih ttg multiple delete dong

    • Agusrulianto

       thanks banget pelajarannya di tunggu artikel berikutny , sorry gak banyak koment karena masih pemula nie hehe

  • Pyandi14

    gan maksud //kode sebelumnya tuh apa gan mohon di bantu gan saya baru pemula

  • rika

    Maaf mas dudu, saya ingin meminta source code ci yang telah dibuat mas dudu, biar saya pelajari. saya kebingungan untuk menggunakan framework ini T.T
    mas dudu bisa kirim ke email saya [email protected]
    makasih mas buat bantuannya