pertama-tama yang harus dilakukan adalah membuat model bos. Model yang saya buat diberi nama msearch.php
class Msearch extends Model{
function Msearch(){
parent::Model();
}
function doSearch($search, $limit, $offset){
if ($offset == “”){
$offset=0;
}
$Q = $this->db->query(“select * from artikel a, artikel_kategori b where (a.status = 1 AND a.id_kategori = b.id_kategori) AND( a.judul LIKE ‘%$search%’ OR a.isi LIKE ‘%$search%’) ORDER BY id_artikel DESC LIMIT $offset, $limit” );
if ( $Q->num_rows > 0){
$result = $Q->result_array();
foreach(array_keys($result) as $key){
$result[$key]['comment_count'] = $this->db->where(‘id_artikel’,$result[$key]['id_artikel'])->from(‘artikel_komentar’)->count_all_results();
}
$Q->free_result();
return $result;
}
}
function hitSearch($search){
$Q = $this->db->query(“select * from artikel a, artikel_kategori b where (a.status = 1 AND a.id_kategori = b.id_kategori) AND( a.judul LIKE ‘%$search%’ OR a.isi LIKE ‘%$search%’) ” );
if ( $Q->num_rows > 0){
$data = $Q->num_rows;
$Q->free_result();
return $data;
}
}
}
selanjutnya tinggal bikin deh Controllernya..
<?php
class Search extends Controller{
function Search()
{
parent::Controller();
session_start();
}
function index(){
$search = $this->input->post(‘search’);
if($search !=”){
$_SESSION['search'] = $search;
redirect(‘search/result’);
}
if($search ==” ){
redirect(‘main’,'refresh’);
}
}
function result()
{
$totalrow = $this->Msearch->hitSearch($_SESSION['search'] );
$data['title'] = “Hasil Pencarian untuk “.$_SESSION['search'].” sebanyak “. $totalrow ;
$config['base_url'] = base_url().’search/result/’;
$config['total_rows'] = $totalrow;
$config['per_page'] = ’2′;
$config['next_link'] = ‘next ›’;
$config['prev_link'] = ‘‹ prev’;
$config['next_link'] = ‘next ›’;
$config['prev_link'] = ‘‹ prev’;
$this->pagination->initialize($config);
if($data['result'] = $this->Msearch->doSearch($_SESSION['search'] ,$config['per_page'],$this->uri->segment(3))){
$data['message'] = “Hasil pencarian untuk keyword<b> “”. $_SESSION['search'].”"</b> “;
$data['result'] = $this->Msearch->doSearch($_SESSION['search'] ,$config['per_page'],$this->uri->segment(3));
$data['main'] = ‘public/public_search’;
}else{
$data['no_result'] = “Maaf pencarian untuk <b>”.$_SESSION['search'] .”</b> tidak ditemukan”;
$data['main'] = ‘public/public_no_result’;
}
$data['paging'] = $this->pagination->create_links(); //untuk pagging
$this->load->view(‘public/front’,$data);
}
}
untuk manampilkannya di view seperti di bawah ini
<p><?=$message;?></p>
<?if (count($result)){ ?>
<?php foreach($result as $key=> $row){ ?>
<h2><a href=”<?=base_url()?>artikel/detail/<?=$row['id_artikel']?>/<?=url_title($row['judul']);?>”><?=$row['judul'] ?></a></h2>
<div class=”tgl”>By : <?=$row['penulis']; ?> | <?$fdate = “%d %M %Y”; echo mdate($fdate, mysql_to_unix($row['tgl'])); ?> | dibaca <?=$row['hit']?> kali | komentar <?=$row['comment_count']?> | <?=$row['kategori'];?></div>
<? $row['isi'] = preg_replace(“/<img.+?>/”, “”, $row['isi']);?>
<p><?=word_limiter($row['isi'],50)?> </p>
<p> <? echo $this->session->flashdata(‘warning’);?></p>
<?} }?>
<center><?=$paging?></center>
