我是 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 "   ";
echo $search->book_name;
echo "   "; ?></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/