как реализовать поиск на веб-портале по всем таблицам базы данных

#php #codeigniter

#php #codeigniter

Вопрос:

привет всем и извините за мой плохой английский, но в любом случае надеюсь, что кто-нибудь сможет мне помочь, поэтому у меня есть веб-портал для просмотра фильмов и телешоу онлайн.я хочу реализовать поиск на сайте по всем таблицам базы данных (у меня есть 3 таблицы: ФИЛЬМЫ, телешоу, АНИМАЦИЯ), поэтому я создаю модель:

 <?php

class Search_model extends CI_Model {

    public function search($q, $row_count, $offset) {
        $array_search = array(
            'name' => $q,
            'descriptions' => $q
        );

        $query1 = $this->db
            ->or_like($array_search)
            ->limit(100)
            ->get('movie', $row_count, $offset);

        $query2 = $this->db
            ->or_like($array_search)
            ->limit(100)
            ->get('serial', $row_count, $offset);

        $query3 = $this->db
            ->or_like($array_search)
            ->limit(100)
            ->get('animation', $row_count, $offset);

        return [
            'movie' => $query1->result_array(),
            'serial' => $query2->result_array(),
            'animation' => $query3->result_array(),
        ];
    }
}
 

также я создаю контроллер:

 <?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Search extends MY_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function index() {

        $this->data['title'] = "Search";

        $this->load->model('search_model');
        $this->data['search_result'] = array();

        $offset = (int) $this->uri->segment(3);

        $row_count = 5;

        if($this->input->get('q_search')) {

            $q = $this->input->get('q_search');
            $this->data['search_result'] = $this->search_model->search($q, $row_count, $offset);

            //pagination
            $this->load->library('pagination');
            $p_config['suffix'] = '?' . http_build_query($_GET, '', "amp;");

            $count = count($this->search_model->search($q, 0 ,0));
            $p_config['base_url'] = '/search/index/';
            $p_config['first_url'] = $p_config['base_url'].'?'.http_build_query($_GET);

            //pagination config
            $p_config['total_rows'] = $count;
            $p_config['per_page'] = $row_count;

            //bootstrap pagination
            $p_config['full_tag_open'] = "<ul class='pagination'>";
            $p_config['full_tag_close'] ="</ul>";
            $p_config['num_tag_open'] = '<li>';
            $p_config['num_tag_close'] = '</li>';
            $p_config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>";
            $p_config['cur_tag_close'] = "<span class='sr-only'></span></a></li>";
            $p_config['next_tag_open'] = "<li>";
            $p_config['next_tagl_close'] = "</li>";
            $p_config['prev_tag_open'] = "<li>";
            $p_config['prev_tagl_close'] = "</li>";
            $p_config['first_tag_open'] = "<li>";
            $p_config['first_tagl_close'] = "</li>";
            $p_config['last_tag_open'] = "<li>";
            $p_config['last_tagl_close'] = "</li>";

            //init pagination
            $this->pagination->initialize($p_config);
            $this->data['pagination'] = $this->pagination->create_links();

            $this->data['tCount'] = $count;
            
        }

        $this->load->view('templates/header', $this->data);
        $this->load->view('search', $this->data);
        $this->load->view('templates/footer');
    }
}
 

также создайте маршрут:

 $route['search'] = 'search';
$route['search/(:any)'] = 'search/$1';
 

также я создаю файл поиска в папке views / main:

 <h2>Search (Result <?php echo $tCount; ?>)</h2>

<?php foreach ($search_result as $key => $value): ?>
    <div class="well">
        <a href="/movies/view/<?php echo $value['slug']; ?>"><?php echo $value['name']; ?></a><br><br> <?php echo $value['descriptions'].'<br>'; ?>
    </div>
<?php endforeach ?>
<?php echo $pagination; ?>
 

но когда я пытаюсь выполнить поиск, например, фильма или телешоу на портале, у меня возникает ошибка:

Обнаружена ошибка: не удалось загрузить запрошенный файл: search.php

Комментарии:

1. у вас есть файл search.php в вашей views папке? есть ли у вас контроллер с именем Search.php в вашей папке контроллера (с заглавными буквами)?

2. да, у меня есть файл поиска в папке просмотра, и да, у меня есть Search.php в контроллере