使用CodeIgniter和php搜索功能

时间:2017-03-14 09:36:31

标签: php codeigniter

我在home控制器中的功能

public function search(){
    $search = $this->input->post('search');
    $data['users'] =  $this->users_model->search($search);
    $this->load-view('index');
}

我在users_model模型中的功能

public function search($search){
    $this->db->select('*');
    $this->db->from('users');
    $this->db->like('username', 'fname','lname', 'mname', $search);
    $query = $this->db->get();
    return $query->result();
}

我在view profile1

中的功能
<form class="navbar-form" role="search">
    <div class="input-group">
        <input type="text" class="form-control" placeholder="Search">
        <div class="input-group-btn">
            <button class="btn btn-default" type="submit" style="height: 34px;"><i class="glyphicon glyphicon-search"></i></button>
        </div>
    </div>
</form>

它没有方法,因为我不知道如何正确执行它。

在非对象

上调用成员函数search()

2 个答案:

答案 0 :(得分:2)

Try this complete search system

in search form

   <form action="<?php echo base_url(); ?>home/search" method="post"> 
        <div class="input-group"> 
        <input type="text" name="search" class="form-control" placeholder="Search">
        </div>
        <div class="input-group">
        <input type="submit" value="search" name="save"/>
        </div>
        </form>

查看数据

     <table>
      <tr>
          <td>User Name</td>
          <td>First Name</td>
          <td>Last Name</td>
          <td>Middle Name</td>
      </tr>
<?php foreach($users as $search_show):?>
      <tr>
          <td><?php echo $search_show->username?></td>
          <td><?php echo $search_show->fname?></td>
          <td><?php echo $search_show->lname?></td>
          <td><?php echo $search_show->mname?></td>
      </tr>
<?php endforeach ?>

 </table>
控制器中的

    public function search()
{
    $this->load->model('users_model');
    $search = $this->input->post('search');
    $data['users'] =  $this->users_model->search($search);
    $this->load-view('index',$data);
}

在模型中

    public function search($search)
{
    $this->db->select('*');
    $this->db->from('users');
    $this->db->like('username',$search);
    $this->db->or_like('fname',$search);
    $this->db->or_like('lname',$search);
    $this->db->or_like('mname',$search);
    $query = $this->db->get();
    return $query->result();
}

答案 1 :(得分:0)

您正试图在未定义的属性search()上调用$this->users_model,这意味着您尚未加载模型。

您可以在需要调用之前手动加载它(资源简单),写一下:

$this->load->model('users_model');

或者通过在CodeIgniter配置中自动加载它(根据模型重要资源)。