In this post, we’re going to learn how to select data from database using CodeIgniter.
Related posts:
- Configuring database in CodeIgniter.
- Creating a controller in CodeIgniter.
- Creating a custom route in CodeIgniter.
You can download the Source code from below link and run on your Local server.
Files to refer:
- cisite\application\views\examples\select.php
- cisite\application\controllers\Example.php
- cisite\application\models\ExSelect.php
- cisite\application\config\routes.php
Before continuing, create a database named cisite and a table named ExSelect.
id | book | author |
int | varchar(100) | varchar(100) |
CREATE TABLE cisite.ex_select ( id INT NOT NULL , book VARCHAR(100) NOT NULL , author VARCHAR(100) NOT NULL);
INSERT INTO cisite.ex_select VALUES(1, 'Wings of fire', 'Dr. APJ Abdul Kalam');
INSERT INTO cisite.ex_select VALUES(2, 'War and Peace', 'Tolstoy');
INSERT INTO cisite.ex_select VALUES(3, 'Jungle Book', 'R. Kippling');
INSERT INTO cisite.ex_select VALUES(4, 'Das Capital', 'Karl Marks');
INSERT INTO cisite.ex_select VALUES(5, 'My Experiments With Truth', 'M. K. Gandhi');
1) Create a view: select.php and paste the following code:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>CI Select</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
</head>
<body>
<form action="selectdata" method="POST">
<input type="text" name="book" list="book" placeholder="Select a book">
<button>Find Author</button>
<datalist id="book">
<option value="Wings of fire">
<option value="War and Peace">
<option value="Jungle Book">
<option value="Das Capital">
<option value="My Experiments With Truth">
</datalist>
</form>
</body>
</html>
2) Create a controller: Examples.php and paste the following code:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Examples extends CI_Controller{
public function index($page="index")
{
switch ($page) {
case 'selectdata':
$this->SelectData();
return;
case 'select':
$this->load->view($page);
break;
default:
show_404();
break;
}
}
public function SelectData()
{
$this->load->model('ExSelect');
$book=$this->input->post('book');
echo $this->ExSelect->SelectData($book);
}
}
?>
3) Create a model: ExSelect.php and paste the following code:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ExSelect extends CI_Model{
public function __construct()
{
parent::__construct();
$this->load->database();
}
public function SelectData($val)
{
$condition = "book='".$val."'";
$this->db->select('*');
$this->db->from('ex_select');
$this->db->where($condition);
$this->db->limit(1);
$res=$this->db->get();
if($res->num_rows()>=1)
{
foreach($res->result() as $row)
{
$result=$row->author;
return $result;
}
}
}
}
If you have not created a new routing, create one as shown below:
Add this to routes.php:
//Examples start
$route['examples'] = 'Examples';
$route['examples/(:any)'] = 'Examples/index/$1';
//Examples End
Subscribe
Join the newsletter to get the latest updates.