在codeigniter中搜索查询

sun*_*nny 0 php mysql search codeigniter

我是Codeigniter的新手。我想创建一个搜索栏,用户在其中写一些关键字,它将检查数据库中表的所有字段,然后显示相对结果。

这是我的View代码:

<?php

    echo '<h2>Search Books</h2>';
    echo form_open('site/search');?>

<p>
<label for="title"> Title:</label>
 <input type="text"  placeholder="Search" name="search" size="50%">
</p>
<input type="submit" value="Submit"/>
    <?php echo form_close(); ?>

<!--Here will be Search Result-->
<?php if (isset($searches)): foreach($searches as $search):?>
<h4><?php echo " &nbsp ";
echo $search->book_name;
echo " &nbsp "; ?></h4>
<?php endforeach; ?>
<?php else: ?>
No Book Found
<?php endif;?>
Run Code Online (Sandbox Code Playgroud)

并且名称站点的控制器代码是

function search(){

            $search_book = array (
                            $search= $this->input->post('search')
            );
            $this->users_model->user_search($search_book);
            $this->dashboard();
Run Code Online (Sandbox Code Playgroud)

在控制器中查询结果

if ($query = $this->users_model->user_search())
            {

                $search['searches'] = $query;
            }
            $data = $search;
             $this->load->view('dashboard', $data);
Run Code Online (Sandbox Code Playgroud)

这是模型代码:

function user_search($search_book){

                 $query = $this->db->like('book_name', $search_book);
             $this->db->or_like('author', $search_book);
              $this->db->or_like('date', $search_book);
             $this->db->get('books');
                return $query->result();
Run Code Online (Sandbox Code Playgroud)

显示错误

遇到PHP错误

严重程度:警告

消息:Users_model :: user_search()缺少参数1,在第28行的C:\ xampp \ htdocs \ Pure_Logics \ application \ controllers \ site.php中调用并定义

文件名:models / users_model.php

行号:26

回溯:

文件:C:\ xampp \ htdocs \ Pure_Logics \ application \ models \ users_model.php行:26函数:_error_handler

文件:C:\ xampp \ htdocs \ Pure_Logics \ application \ controllers \ site.php行:28函数:user_search

文件:C:\ xampp \ htdocs \ Pure_Logics \ index.php行:315功能:require_once

JYo*_*ThI 7

方法调用中缺少参数

$this->users_model->user_search()
Run Code Online (Sandbox Code Playgroud)

改成

 if ($query = $this->users_model->user_search($this->input->post('search')))
  {

     $search['searches'] = $query;
  }
Run Code Online (Sandbox Code Playgroud)

模型:

function user_search($search_book){

                 $this->db->like('book_name', $search_book);
                 $this->db->or_like('author', $search_book);
                 $this->db->or_like('date', $search_book);
                 $query = $this->db->get('books');
                 return $query->result();
  }
Run Code Online (Sandbox Code Playgroud)

控制器:

function search(){

    $this->dashboard();
     $data['searches'] =array();
    if ($query = $this->users_model->user_search($this->input->post('search')))
    {

        $data['searches'] = $query;
    }

     $this->load->view('dashboard', $data);

}
Run Code Online (Sandbox Code Playgroud)

1)您调用不带参数的方法。但是您在model中使用参数定义的方法。