【问题标题】:My search code is not outputting any result on codeigniter我的搜索代码没有在 codeigniter 上输出任何结果
【发布时间】:2015-12-05 13:28:38
【问题描述】:

请帮忙!!

我正在尝试搜索数据库以生成搜索查询的结果,但即使搜索词存在于数据库中,它也不会输出任何结果

这是我的控制器

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

我的搜索表单

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

它总是输出“不工作”

【问题讨论】:

  • 请使用一些合理的代码缩进,否则代码几乎无法阅读。我已经重新格式化了你的代码。此外,PHP 解释器的所有不必要的启动和停止都很烦人
  • 你是什么意思?你能解释一下吗?

标签: php codeigniter search model-view-controller


【解决方案1】:

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

你的代码没有&lt;?php?&gt;

<?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 方法调用。因此,请尝试传递您从 POSTed 数据中获得的参数。

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' 几乎肯定会导致查询不返回任何结果。

【讨论】:

  • 谢谢。我打算清理代码。但是试过你的,它在第 7 行有一个 Parse error: syntax error, unexpected 'echo' 如果问题出在我的询问中,我该如何解决这个问题??
  • $count++; 后面的分号。
  • 查看有关数据库查询的其他答案
  • 谢谢。我尝试了您的建议.. 仍然没有输出任何结果。
猜你喜欢
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 2019-08-21
相关资源
最近更新 更多