Create Database
CREATE TABLE IF NOT EXISTS `users` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`username` varchar(15) NOT NULL,
`password` text NOT NULL,
`fullname` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)
Setup Controller
application\controllers\user.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class User extends CI_Controller{ /** * The __construct function is called so that I don't have to load the model each and every time. * And any change while refactoring or something else would mean change in only one place. */ function __construct() { parent::__construct(); $this->load->model('Model_user'); $this->load->library('form_validation'); $this->load->helper('form'); } function index(){ $data['query'] = $this->Model_user->getAll(); $this->load->view('view_user/input',$data); } function submit(){ if ($this->input->post('submit')){ if ($this->input->post('id')){ $this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]'); $this->form_validation->set_rules('password', 'Password', 'matches[passconf]'); $this->form_validation->set_rules('fullname', 'Fullname', 'required|min_length[5]|max_length[25]'); if ($this->form_validation->run() == FALSE){ $data['id'] = $this->input->post('id'); $data['username'] = set_value('username'); $data['fullname'] = set_value('fullname'); $this->load->view('view_user/edit',$data); }else{ $this->Model_user->update(); redirect('view_user/index'); } }else{ $this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]'); $this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]'); $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required'); $this->form_validation->set_rules('fullname', 'Fullname', 'required|min_length[5]|max_length[25]'); if ($this->form_validation->run() == FALSE){ $data['query'] = $this->Model_user->getAll(); $this->load->view('view_user/input',$data); }else{ $this->Model_user->save(); redirect('user/index'); } } } } function edit(){ $id=$this->uri->segment(3); $data['result']=$this->Model_user->getUser($id); if (empty($id) or count($data['result'])==0 ){ redirect('user/index'); }else{ $result=$this->Model_user->getUser($id); $data['id'] = $result['id']; $data['username'] = $result['username']; $data['fullname'] = $result['fullname']; $this->load->view('view_user', $data); } } function delete($id){ $this->db->delete('user', array('id' => $id)); redirect('user/index'); } }Model application\models\Model_user.php
<?php class Model_user extends CI_Model{ function getAll(){ $this->db->select('id,username,fullname'); $this->db->from('users'); $this->db->limit(10); $this->db->order_by('id','ASC'); $query = $this->db->get(); return $query->result(); } function getUser($id){ $this->db->where('id', $id); $query = $this->db->get('users'); return $query->row_array(); } function save(){ $username = $this->input->post('username'); $password = $this->input->post('password'); $fullname = $this->input->post('fullname'); $data = array( 'username'=>$username, 'password'=>md5($password), 'fullname'=>$fullname ); $this->db->insert('users',$data); } function update(){ $id = $this->input->post('id'); $username = $this->input->post('username'); $password = $this->input->post('password'); $fullname = $this->input->post('fullname'); if ($password==''){ $data = array( 'username'=>$username, 'fullname'=>$fullname ); }else{ $data = array( 'username'=>$username, 'password'=>md5($password), 'fullname'=>$fullname ); } $this->db->where('id',$id); $this->db->update('users',$data); } }View application\views\view_user\input.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Data User</title> </head> <body> <div id="form_input" title="Input / Edit Data"> <table> <?php echo validation_errors(); ?> <?php echo form_open('user/submit'); ?> <tr > <td> <?php echo form_label('User Name : '); ?></td> <td> <?php echo form_input('username',set_value('username'),'id="username"'); ?></td> </tr> <tr> <td> <?php echo form_label('Password : ');?> </td> <td> <?php echo form_password('password','','id="password"'); ?></td> </tr> <tr> <td> <?php echo form_label('Repeat Password : ');?> </td> <td> <?php echo form_password('passconf','','id="passconf"'); ?></td> </tr> <tr> <td> <?php echo form_label('Full Name : ');?> </td> <td> <?php echo form_input('fullname', set_value('fullname'),'id="fullname"'); ?></td> </tr> <tr> <td><?php echo form_submit('submit','Save')?> </tr> </table> </div> <div id="show"> <?php $this->load->view('view_user/show'); ?> </div> </div> </body> </html>application\views\view_user\show.php
<?php if (isset($query) && count($query) > 0){ ?> <h1>Data User</h1> <table width="400" border="1"> <tr > <th>No</th> <th>Username</th> <th>Fullname</th> <th>Edit</th> <th>Delete</th> </tr> <?php $i=0; foreach ($query as $row){ $i++; echo "<tr class=\"record\">"; echo "<td>$i</td>"; echo "<td>$row->username</td>"; echo "<td>$row->fullname</td>"; echo "<td><a href=".base_url()."index.php/user/edit/$row->id>Edit</a></td>"; echo "<td><a href=".base_url()."index.php/user/delete/$row->id>Delete</a></td>"; echo "</tr>"; } ?> </table> <?php } ?>