我的搜索代码在编码器上没有输出任何结果


My search code is not outputting any result on codeigniter

请帮帮我!

我试图搜索数据库,以产生结果为我的搜索查询,但它不输出任何结果,即使搜索词存在于数据库

这是我的控制器

<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
class Search extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->model("profile_model");
        $this->load->model("model_home");
    } 
    public function index(){
        $data = array();
        $search_term = $this->input->post('search');
        if($query = $this->model_home->car_search())
        {
            $data['car'] = $query;
        }
       $this->load->view('search_results', $data);
    }
}

这是我的模型

public function car_search($search_term='default')
{
    $this->db->select('*');
    $this->db->like('car_make',$search_term);
    $this->db->or_like('car_model',$search_term);
    $this->db->or_like('car_year',$search_term);
    $this->db->or_like('registration_number',$search_term);
    $this->db->or_like('engine_number',$search_term);
    $this->db->or_like('chasis_number',$search_term);
    $query = $this->db->get('cars');
    return $query->result_array();
}

My search form

<?php 
     echo form_open('search');
     echo form_input(array('name'=>'search'));
     echo form_submit('search_submit','submit');
?>

我的搜索结果页

<?php 

if(isset($car)) : 
    foreach($car as $row) { 
    echo $row['car_make'];
     }                               //<-- moved this line
else : 
    echo '<h1> Not working </h1>';
endif; ?>

总是输出"Not Working"

这段代码有点乱,如果整理一下,就会看到错误

没有<?php?>的代码

<?php 
    $count = 1; 
    if(isset($car)) : 
        foreach($car as $row) { 
            $count++;
        }
        echo $row['car_make']
    else : 
        echo '<h1> Not working </h1>';
    endif; 
?>
所以你应该看到}在错误的地方结束foreach循环,现在很容易,所以把它改成
<?php 
    $count = 1; 
    if(isset($car)) : 
        foreach($car as $row) { 
            $count++;
            echo $row['car_make'];
         }                               //<-- moved this line
    else : 
        echo '<h1> Not working </h1>';
    endif; 
?>

当你得到Not Working消息时,我必须假设你查询数据库有问题。

可能是因为您没有将搜索词传递到car_search方法调用中。因此,请尝试传递从post数据中获得的参数。

public function index(){
    $data = array();
    if($query = $this->model_home->car_search($this->input->post('search'))) {
        $data['car'] = $query;
    }
   $this->load->view('search_results', $data);
}

您还应该查看car_search方法中使用的默认值,因为字符串'default'几乎肯定会导致查询不返回结果。