Kamis, 02 Agustus 2012

CodeIgniter Part IV : CRUD pada CI


Sebelumnya kita persiapkan terlebih dahulu databasenya. Kita buat databasenya dengan nama “d4b6”. Buat juga tabelnya dengan nama news dengan struktur sqlnya seperti dibawah ini :
CREATE TABLE `db_d4b6`.`news` (`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`title` VARCHAR( 255 ) NOT NULL ,`content` TEXT NOT NULL ,`create` DATETIME NOT NULL ,`udpate` TIMESTAMP NOT NULL ,`delete` DATETIME NOT NULL
) ENGINE = INNODB;
Setelah kita buat tabel dan databasenya langkah kita berikutnya adalah sebagai berikut:
1. Membuat inputan kedalam data base:
- pertama kita buat file modelnya dengan nama newsModel.php (application/model/modelNews.php) dengan scriptnya seperti gambar dibawah ini :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class ModelNews extends CI_Model {
                function __construct()
                {
         parent::__construct();
                }
               
                function getAllNews(){
                                $q="SELECT * FROM news";             
                                return $this->db->query($q);
                }
               
                function insertNews($title,$content){
                                $q="INSERT INTO news (title,content,`create`,`update`,`delete`) VALUES ('$title','$content','1','1','1')";          
                                return $this->db->query($q);
                }              
}

- langkah kedua kita buat untuk controllernya dengan nama news.php(application/controllers/news.php) dengan code sebagai berikut:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class News extends CI_Controller {
public function show()
                {
                                $data['n'] = $this->ModelNews->getAllNews();
                                $this->load->view('news/view_show_page', $data);

                }
public function input()
                {
                                $this->load->helper(array('form', 'url'));

                                $this->load->library('form_validation');

                                $this->form_validation->set_rules('title', 'Title', 'required');
                                $this->form_validation->set_rules('content', 'Content', 'required');

                                if ($this->form_validation->run() == FALSE)
                                {
                                                $this->load->view('news/view_input');
                                }
                                else
                                {
                                                $this->ModelNews->insertNews($_POST['title'],$_POST['content']);
                                                redirect('news/show');
                                }              
                }
}

- langkah selanjutnya kita buat tampilan form inputnya pada view, dengan nama view_input.php (application/view/view_input.php) dengan script sbb:
<html>
<head>
<title>My Form</title>
</head>
<body>
<?php echo validation_errors(); ?>
<?php echo form_open('news/input'); ?>
<h5>TItle</h5>
<?php echo form_error('title'); ?>
<input type="text" name="title" value="<?php echo set_value('title'); ?>" size="50" />
<h5>Content</h5>
<?php echo form_error('content'); ?>
<input type="text" name="content" value="<?php echo set_value('content'); ?>" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>
- Maka ketika kita ketikkan urlnya http://localhost/d4b6/news/input maka akan muncul halaman seperti gambar dibawah ini:
input.png

-          Setelah muncul halaman seperti diatas maka kita akan membuat halaman actionnya ketika berhasil menginputkannya.  Kita buat untuk halaman menampilkan datanya dengan nama view_show_page.php (application/view/view_show_page.php) dengan script seperti gambar dibawah ini :
<? 
                print_r($n);
                $sr = $n->result();
?>

<p>List News</p>

<? foreach($sr as $r){ ?>
                <? echo $r->id?> <br />
                <? echo $r->title?> <br />
                <? echo $r->content?> <br />
                <?echo $r->create?> <br />
                                ||<a href="<?=base_url();?>news/delete/<?=$r->id?>"> Delete</a>
                                <br />    
<? } ?>
-          Selanjutnya isikan data pada form input maka ketika disubmit akan menampilkan halaman view_show_page.php seperti gambar dibawah ini :

Bila nampak seperti gambar diatas maka proses inputan kita telah berhasil.

2.  Delete Data
Setelah kita berhasil menginputkan data maka langkah selanjutnya  kita buat fungsi delete pada model. Tambahkan script pada modelNews.php  sbb:
  function delNewsById($id){
                                $q="DELETE FROM news WHERE id='$id'";    
                                return $this->db->query($q);
                }
Kemudian buat controllernya pada news.php seperti dibawah ini:
                public function delete($id="")
                {
                                $this->ModelNews->delNewsById($id);
                                redirect('news/show');

                }

3. Membuat upload file

Langkah awal pembuatan upload file menurut dari user guide adalah sebagai berikut :
-          Buat folder “uploads” pada folder d4b6 (nama folder codeigniter)
-          Membuat  controller terlebih dahulu dengan nama upload.php (application/controllers/upload.php
Ketikkan script seperti gambar dibawah ini :
<?php
class Upload extends CI_Controller {
                function __construct()
                {
                                parent::__construct();
                                $this->load->helper(array('form', 'url'));
                }
                function index()
                {
                                $this->load->view('view_upload', array('error' => ' ' ));
                }

                function do_upload()
                {
                                $config['upload_path'] = './uploads/';
                                $config['allowed_types'] = 'gif|jpg|png';
                                $config['max_size']              = '1000';
                                $config['max_width']  = '2000';
                                $config['max_height']  = '1000';
                                $this->load->library('upload', $config);
                                if ( ! $this->upload->do_upload())
                                {
                                                $error = array('error' => $this->upload->display_errors());

                                                $this->load->view('view_upload', $error);
                                }
                                else
                                {
                                                $data = array('upload_data' => $this->upload->data());
                                                $this->load->view('upload_success', $data);
                                }
                }
}
?>

-          Setelah kita buat controllernya selanjutnya kita buat untuk viewnya, buat file dengan nama view_upload.php (application/view/view_upload.php). ketikkan scriptnya seperti berikut:
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<?php echo $error;?>
<?php echo form_open_multipart('upload/do_upload');?>
<input type="file" name="userfile" size="20" />
<br /><br />
<input type="submit" value="upload" />
</form>
</body>
</html>
-          Setelah kita buat untuk viewnya maka kita buat juga untuk tampilan berhasil uploadnya dengan nama upload_success.php dengan script sebagai berikut :
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<h3>Your file was successfully uploaded!</h3>
<ul>
<?php foreach ($upload_data as $item => $value):?>
<li><?php echo $item;?>: <?php echo $value;?></li>
<?php endforeach; ?>
</ul>
<p><?php echo anchor('upload', 'Upload Another File!'); ?></p>
</body>
</html>

Untuk pengujian buka browser dan ketikkan http://localhost/d4b6/upload maka akan nampak tampilan seperti gambar dibawah ini :
Pilih file dan submit maka bila berhasil memasukkan gambar akan muncul tampilan seperti gambar dibawah ini:

Tidak ada komentar:

Posting Komentar