We will be going to learn Codeigniter 3 - Basic CRUD application with MySQL Example with Demo.
Step 1:
Download Codeigniter 3 Download Codeigniter 3
Step 2:
Make Database and Configuration
Items Table:
CREATE TABLE IF NOT EXISTS `items` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`description` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16 ;
application/config/database.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'root',
'database' => 'test',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Step 3:
Create Routes application/config/routes.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['itemCRUD'] = "itemCRUD/index";
$route['itemCRUD/(:num)'] = "itemCRUD/show/$1";
$route['itemCRUDCreate']['post'] = "itemCRUD/store";
$route['itemCRUDEdit/(:any)'] = "itemCRUD/edit/$1";
$route['itemCRUDUpdate/(:any)']['put'] = "itemCRUD/update/$1";
$route['itemCRUDDelete/(:any)']['delete'] = "itemCRUD/delete/$1";
Step 4:
Add ItemCRUD Controller application/controllers/ItemCRUD.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ItemCRUD extends CI_Controller {
public $itemCRUD;
/**
* Get All Data from this method.
*
* @return Response
*/
public function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('session');
$this->load->model('ItemCRUDModel');
$this->itemCRUD = new ItemCRUDModel;
}
/**
* Display Data this method.
*
* @return Response
*/
public function index()
{
$data['data'] = $this->itemCRUD->get_itemCRUD();
$this->load->view('theme/header');
$this->load->view('itemCRUD/list',$data);
$this->load->view('theme/footer');
}
/**
* Show Details this method.
*
* @return Response
*/
public function show($id)
{
$item = $this->itemCRUD->find_item($id);
$this->load->view('theme/header');
$this->load->view('itemCRUD/show',array('item'=>$item));
$this->load->view('theme/footer');
}
/**
* Create from display on this method.
*
* @return Response
*/
public function create()
{
$this->load->view('theme/header');
$this->load->view('itemCRUD/create');
$this->load->view('theme/footer');
}
/**
* Store Data from this method.
*
* @return Response
*/
public function store()
{
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('description', 'Description', 'required');
if ($this->form_validation->run() == FALSE){
$this->session->set_flashdata('errors', validation_errors());
redirect(base_url('itemCRUD/create'));
}else{
$this->itemCRUD->insert_item();
redirect(base_url('itemCRUD'));
}
}
/**
* Edit Data from this method.
*
* @return Response
*/
public function edit($id)
{
$item = $this->itemCRUD->find_item($id);
$this->load->view('theme/header');
$this->load->view('itemCRUD/edit',array('item'=>$item));
$this->load->view('theme/footer');
}
/**
* Update Data from this method.
*
* @return Response
*/
public function update($id)
{
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('description', 'Description', 'required');
if ($this->form_validation->run() == FALSE){
$this->session->set_flashdata('errors', validation_errors());
redirect(base_url('itemCRUD/edit/'.$id));
}else{
$this->itemCRUD->update_item($id);
redirect(base_url('itemCRUD'));
}
}
/**
* Delete Data from this method.
*
* @return Response
*/
public function delete($id)
{
$item = $this->itemCRUD->delete_item($id);
redirect(base_url('itemCRUD'));
}
}
Step 5:
Create ItemCRUD Model application/models/ItemCRUD.php
<?php
class ItemCRUDModel extends CI_Model{
public function get_itemCRUD(){
if(!empty($this->input->get("search"))){
$this->db->like('title', $this->input->get("search"));
$this->db->or_like('description', $this->input->get("search"));
}
$query = $this->db->get("items");
return $query->result();
}
public function insert_item()
{
$data = array(
'title' => $this->input->post('title'),
'description' => $this->input->post('description')
);
return $this->db->insert('items', $data);
}
public function update_item($id)
{
$data=array(
'title' => $this->input->post('title'),
'description'=> $this->input->post('description')
);
if($id==0){
return $this->db->insert('items',$data);
}else{
$this->db->where('id',$id);
return $this->db->update('items',$data);
}
}
public function find_item($id)
{
return $this->db->get_where('items', array('id' => $id))->row();
}
public function delete_item($id)
{
return $this->db->delete('items', array('id' => $id));
}
}
?>
Step 6:
Create View Files application/views/theme/header.php
<!DOCTYPE html>
<html>
<head>
<title>Basic Crud operation in Codeigniter 3</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
application/views/theme/footer.php
</div>
</body>
</html>
application/views/itemCRUD/list.php
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Codeigniter 3 CRUD Example from scratch</h2>
</div>
<div class="pull-right">
<a class="btn btn-success" href="<?php echo base_url('itemCRUD/create') ?>"> Create New Item</a>
</div>
</div>
</div>
<table class="table table-bordered">
<thead>
<tr>
<th>Title</th>
<th>Description</th>
<th width="220px">Action</th>
</tr>
</thead>
<tbody>
<?php foreach ($data as $item) { ?>
<tr>
<td><?php echo $item->title; ?></td>
<td><?php echo $item->description; ?></td>
<td>
<form method="DELETE" action="<?php echo base_url('itemCRUD/delete/'.$item->id);?>">
<a class="btn btn-info" href="<?php echo base_url('itemCRUD/'.$item->id) ?>"> show</a>
<a class="btn btn-primary" href="<?php echo base_url('itemCRUD/edit/'.$item->id) ?>"> Edit</a>
<button type="submit" class="btn btn-danger"> Delete</button>
</form>
</td>
</tr>
<?php } ?>
</tbody>
</table>
application/views/itemCRUD/create.php
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Add New Item</h2>
</div>
<div class="pull-right">
<a class="btn btn-primary" href="<?php echo base_url('itemCRUD');?>"> Back</a>
</div>
</div>
</div>
<form method="post" action="<?php echo base_url('itemCRUDCreate');?>">
<?php
if ($this->session->flashdata('errors')){
echo '<div class="alert alert-danger">';
echo $this->session->flashdata('errors');
echo "</div>";
}
?>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Title:</strong>
<input type="text" name="title" class="form-control">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Description:</strong>
<textarea name="description" class="form-control"></textarea>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
application/views/itemCRUD/show.php
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2> Show Item</h2>
</div>
<div class="pull-right">
<a class="btn btn-primary" href="<?php echo base_url('itemCRUD');?>"> Back</a>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Title:</strong>
<?php echo $item->title; ?>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Description:</strong>
<?php echo $item->description; ?>
</div>
</div>
</div>
application/views/itemCRUD/edit.php
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Edit Item</h2>
</div>
<div class="pull-right">
<a class="btn btn-primary" href="<?php echo base_url('itemCRUD');?>"> Back</a>
</div>
</div>
</div>
<form method="post" action="<?php echo base_url('itemCRUD/update/'.$item->id);?>">
<?php
if ($this->session->flashdata('errors')){
echo '<div class="alert alert-danger">';
echo $this->session->flashdata('errors');
echo "</div>";
}
?>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Title:</strong>
<input type="text" name="title" class="form-control" value="<?php echo $item->title; ?>">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Description:</strong>
<textarea name="description" class="form-control"><?php echo $item->description; ?></textarea>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
Now you are able to run this example.