2015-09-09 2 views
1

Пожалуйста, помогите !!Мой поисковый код не выводит никакого результата на 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(); 
} 

Моя форма поиска

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

Его всегда выводя «не работает»

+0

Пожалуйста, используйте разумный отступ кода, иначе код почти нечитабелен. Я переформатировал ваш код. Также все ненужные Запуск и остановка интерпретатора PHP довольно раздражает глаз – RiggsFolly

+0

Как вы это понимаете? Не могли бы вы объяснить? –

ответ

0

Этот код является немного беспорядок, если привести в порядок его вы увидите сообщение об ошибке

Ваш код без всех <?php и ?>

<?php 
    $count = 1; 
    if(isset($car)) : 
     foreach($car as $row) { 
      $count++; 
     } 
     echo $row['car_make'] 
    else : 
     echo '<h1> Not working </h1>'; 
    endif; 
?> 

Таким образом, вы должны себе Е } в неправильном месте, закончившейся цикл Еогеасп, довольно легко сейчас, поэтому изменить его

<?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' почти определенно вызовет запрос не возвращать никаких результатов.

+0

Спасибо. Я намерен очистить код. Но у вас была проблема с паролем: синтаксическая ошибка, неожиданное «эхо» в строке 7 Пожалуйста, если проблема связана с моим запросом какой-либо идеи, как я могу это исправить? –

+0

Точка с запятой после '$ count ++;'. – Tpojka

+0

См. Дополнительный ответ на запрос базы данных – RiggsFolly

Смежные вопросы