php - 在 codeigniter 中搜索查询

标签 php mysql codeigniter search

我是 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;?>

名称为 site 的 Controller 代码是

function search(){

            $search_book = array (
                            $search= $this->input->post('search')
            );
            $this->users_model->user_search($search_book);
            $this->dashboard();

Controller 中的查询结果

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

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

这是模型代码:

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();

显示错误

A PHP Error was encountered

Severity: Warning

Message: Missing argument 1 for Users_model::user_search(), called in C:\xampp\htdocs\Pure_Logics\application\controllers\site.php on line 28 and defined

Filename: models/users_model.php

Line Number: 26

Backtrace:

File: C:\xampp\htdocs\Pure_Logics\application\models\users_model.php Line: 26 Function: _error_handler

File: C:\xampp\htdocs\Pure_Logics\application\controllers\site.php Line: 28 Function: user_search

File: C:\xampp\htdocs\Pure_Logics\index.php Line: 315 Function: require_once

最佳答案

方法调用中缺少参数

$this->users_model->user_search()

改为

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

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

型号:

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();
  }

Controller :

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);

}

1) 你调用没有参数的方法。但是你在模型中定义了带有参数的方法。

关于php - 在 codeigniter 中搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585478/

相关文章:

php - Docker 镜像不会连接到 MySQL Workbench

php - 选择全部,其中日期 = 今天?

mySQL查询: How to choose just one comment from post list?

javascript - 从 codeigniter 查询到 javascript 日志

php - 在 codeigniter 中将数组从 Controller 传递到模型

php - PHP站点突然出现 "MySQL server has gone away"错误

php - 无法将字符串解析为 JSON 对象,无法显示来自 javascript 的警告框

php - 确定字符串的文件类型

mysql - 将 dbFailOnError 添加到 CurrentDb.Execute 无法更新表

mysql - 无法卸载 mysql-server,因为 : Script SACSrv is broken