Ктонибудь помогите реализовать поиск на сайте?

0

как сделать так чтоб поиск шел по всем таблицам базы данных?по уроку и конечному проекту автора делаю ищет только фильмы а мне надо чтоб искал фильмы отдельно сериалы отдельно.параметры таблицы в базе данных точно как у автора видео только фильмы и сериалы в отдельных таблицах.

codeigniter

32 ответов

0

я читал но куда все это делать не понял

0
я создал модель так:
<?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, '', "&");

                $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');
        }
    }
потом в папке views файл search.php
<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; ?>

ищу на сайте чтонибудь и всеравно ошибки
UNDEFINED INDEX: SLUG
UNDEFINED INDEX: NAME
UNDEFINED INDEX: DESCRIPTIONS
0
сдела как ты сказал
ищу фильм 13 HOURS
результат: 

Search (Result 3)
array(3) {
  ["movie"]=>
  array(1) {
    [0]=>
    array(11) {
      ["id"]=>
      string(3) "861"
      ["slug"]=>
      string(8) "13-hours"
      ["name"]=>
      string(8) "13 Hours"
      ["director"]=>
      string(11) "Michael Bay"
      ["descriptions"]=>
      string(103) "During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos."
      ["year"]=>
      string(4) "2016"
      ["rating"]=>
      string(3) "7.3"
      ["poster"]=>
      string(94) "https://static.imovies.cc/movies/posters/240/58/450148058-cc1843a997480613ca3b67a05e55892a.jpg"
      ["player_code"]=>
      string(60) "https://api.imovies.cc/api/v1/movies/450148058/files/1237060"
      ["add_date"]=>
      string(19) "2020-11-22 23:16:31"
      ["category_id"]=>
      string(1) "1"
    }
  }
  ["serial"]=>
  array(0) {
  }
  ["animation"]=>
  array(0) {
  }
}
0
я делал все по видео как в уроке только модель создал по другому
а в
<!-- Тут код для вывода фильмов из таблицы movie  -->
надо написать так?
<?php foreach ($search_result as $key => $value): ?>

<?php if(sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
       <a href="/movies/view/<?php echo $value['slug']; ?>"><?php echo $value['name']; ?></a><br><br> <?php echo $value['descriptions'].'<br>'; ?>
        
    <?php endforeach ?>
<?php endif ?>

или чтото опять неправильно делаю?
я конечно тут всех задолбал но простите так я и учусь
0
эх друг да я эти уроки пересмотриваю уже сколько раз,трудно что в курсе автор работает только с одной таблицой а мне захотелось сразу 3 но всеже пересмотривая уроки,спрашивая тут с трудом но всеже многое сделал.
так вот сделал,обратился к $movie
<h2>Search (Result <?php echo $tCount; ?>)</h2>

<?php foreach ($search_result as $key => $value): ?>

<?php if(sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
       <a href="/movies/view/<?php echo $movie['slug']; ?>"><?php echo $value['name']; ?></a><br><br> <?php echo $value['descriptions'].'<br>'; ?>
        
    <?php endforeach ?>
<?php endif ?>

теперь эта ошибка:
An uncaught Exception was encountered
Type: ParseError

Message: syntax error, unexpected end of file

Filename: C:\xampp\htdocs\movieworld\application\views\search.php

Line Number: 10

Backtrace:

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once
0
сделал,теперь ваще катастрофа ))

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

<?php foreach ($search_result as $key => $value): ?>

<?php if(sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
        <a href="/movies/view/<?php echo $movie['slug']; ?>"><?php echo $value['name']; ?></a><br><br> <?php echo $value['descriptions'].'<br>'; ?>
       <pre>
           <?php echo var_dump($movie); ?>
       </pre>
        
    <?php endforeach ?>
<?php endif ?>

<?php endforeach ?>

в результате ошибки:
Search (Result 3)
A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 5

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 5
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: Warning

Message: sizeof(): Parameter must be an array or an object that implements Countable

Filename: views/search.php

Line Number: 5

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 5
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 5

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 5
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: Warning

Message: sizeof(): Parameter must be an array or an object that implements Countable

Filename: views/search.php

Line Number: 5

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 5
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 5

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 5
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: Warning

Message: sizeof(): Parameter must be an array or an object that implements Countable

Filename: views/search.php

Line Number: 5

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 5
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once
0
спасибо друг что помогаешь,там наверху это сочтется тебе ))
сделал 

<?php foreach ($search_result as $key => $value): ?>

       <pre>
           <?php echo var_dump($value); ?>
       </pre>

<?php if(is_array($value['movie']) && sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
    
       <pre>
           <?php echo var_dump($movie); ?>
       </pre>
        
    <?php endforeach ?>
<?php endif ?>

<?php endforeach ?>

результат:

Search (Result 3)
    array(1) {
  [0]=>
  array(11) {
    ["id"]=>
    string(3) "861"
    ["slug"]=>
    string(8) "13-hours"
    ["name"]=>
    string(8) "13 Hours"
    ["director"]=>
    string(11) "Michael Bay"
    ["descriptions"]=>
    string(103) "During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos."
    ["year"]=>
    string(4) "2016"
    ["rating"]=>
    string(3) "7.3"
    ["poster"]=>
    string(94) "https://static.imovies.cc/movies/posters/240/58/450148058-cc1843a997480613ca3b67a05e55892a.jpg"
    ["player_code"]=>
    string(60) "https://api.imovies.cc/api/v1/movies/450148058/files/1237060"
    ["add_date"]=>
    string(19) "2020-11-22 23:16:31"
    ["category_id"]=>
    string(1) "1"
  }
}
A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 9

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 9
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

    array(0) {
}
A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 9

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 9
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

    array(0) {
}
A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 9

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 9
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

Search
Your Request
Login
Login
Password
News
Deadpool 3' in the Works with 'Bob's Burgers' Writers

The Last of Us' Series Gets HBO Green Light

The Day the Earth Stood Still

Welcome to Chechnya’ documentary wins key award ahead of 2021 Oscar season

Web Prtal allmost Done

Movie Ratings
8.6Interstellar
8.4Avengers: Endgame
8.2Warrior
8.2The Wolf of Wall Street
8Guardians of the Galaxy
8Wonder
7.9The Trial of the Chicago 7
7.8Hidden Figures
7.8The Man From Nowhere
7.7Deadpool 2
0

не ничего там не трогал

0
<h2>var_dump($search_result)</h2>
<pre>
     <?php echo var_dump($search_result); ?>
</pre>


<?php foreach ($search_result as $key => $value): ?>
        <h2>var_dump($value)</h2>
       <pre>
           <?php echo var_dump($value); ?>
       </pre>

<?php if(is_array($value['movie']) && sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
       <h2>var_dump($movie)</h2>
       <pre>
           <?php echo var_dump($movie); ?>
       </pre>
        
    <?php endforeach ?>
<?php endif ?>

<?php endforeach ?>

результат:

var_dump($search_result)
     array(3) {
  ["movie"]=>
  array(1) {
    [0]=>
    array(11) {
      ["id"]=>
      string(3) "861"
      ["slug"]=>
      string(8) "13-hours"
      ["name"]=>
      string(8) "13 Hours"
      ["director"]=>
      string(11) "Michael Bay"
      ["descriptions"]=>
      string(103) "During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos."
      ["year"]=>
      string(4) "2016"
      ["rating"]=>
      string(3) "7.3"
      ["poster"]=>
      string(94) "https://static.imovies.cc/movies/posters/240/58/450148058-cc1843a997480613ca3b67a05e55892a.jpg"
      ["player_code"]=>
      string(60) "https://api.imovies.cc/api/v1/movies/450148058/files/1237060"
      ["add_date"]=>
      string(19) "2020-11-22 23:16:31"
      ["category_id"]=>
      string(1) "1"
    }
  }
  ["serial"]=>
  array(0) {
  }
  ["animation"]=>
  array(0) {
  }
}
var_dump($value)
           array(1) {
  [0]=>
  array(11) {
    ["id"]=>
    string(3) "861"
    ["slug"]=>
    string(8) "13-hours"
    ["name"]=>
    string(8) "13 Hours"
    ["director"]=>
    string(11) "Michael Bay"
    ["descriptions"]=>
    string(103) "During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos."
    ["year"]=>
    string(4) "2016"
    ["rating"]=>
    string(3) "7.3"
    ["poster"]=>
    string(94) "https://static.imovies.cc/movies/posters/240/58/450148058-cc1843a997480613ca3b67a05e55892a.jpg"
    ["player_code"]=>
    string(60) "https://api.imovies.cc/api/v1/movies/450148058/files/1237060"
    ["add_date"]=>
    string(19) "2020-11-22 23:16:31"
    ["category_id"]=>
    string(1) "1"
  }
}
       
A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 13

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 13
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

var_dump($value)
           array(0) {
}
       
A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 13

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 13
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

var_dump($value)
           array(0) {
}
       
A PHP Error was encountered
Severity: Notice

Message: Undefined index: movie

Filename: views/search.php

Line Number: 13

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 13
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once
0
сделал для movie

<?php if(is_array($search_result['movie']) && sizeof($search_result['movie']) > 0): ?>
    <?php foreach ($search_result['movie'] as $movie_key => $movie): ?>
        <a href="/movies/view/<?php echo $movie['slug']; ?>"><?php echo $value['name']; ?></a><br><br> <?php echo $value['descriptions'].'<br>'; ?>
       <h2>MOVIE var_dump($movie)</h2>
       <?php echo var_dump($movie); ?>

       <h2>MOVIE NAME</h2>
       <?php echo $movie['name']; ?>

    <?php endforeach ?>
<?php endif ?>

результат:

A PHP Error was encountered
Severity: Notice

Message: Undefined variable: value

Filename: views/search.php

Line Number: 3

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 3
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: Notice

Message: Trying to access array offset on value of type null

Filename: views/search.php

Line Number: 3

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 3
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once



A PHP Error was encountered
Severity: Notice

Message: Undefined variable: value

Filename: views/search.php

Line Number: 3

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 3
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: Notice

Message: Trying to access array offset on value of type null

Filename: views/search.php

Line Number: 3

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 3
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 64
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once


MOVIE var_dump($movie)
array(11) { ["id"]=> string(3) "861" ["slug"]=> string(8) "13-hours" ["name"]=> string(8) "13 Hours" ["director"]=> string(11) "Michael Bay" ["descriptions"]=> string(103) "During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos." ["year"]=> string(4) "2016" ["rating"]=> string(3) "7.3" ["poster"]=> string(94) "https://static.imovies.cc/movies/posters/240/58/450148058-cc1843a997480613ca3b67a05e55892a.jpg" ["player_code"]=> string(60) "https://api.imovies.cc/api/v1/movies/450148058/files/1237060" ["add_date"]=> string(19) "2020-11-22 23:16:31" ["category_id"]=> string(1) "1" }
MOVIE NAME
13 Hours
0
сделал так
<?php if(is_array($search_result['movie']) && sizeof($search_result['movie']) > 0): ?>
    <?php foreach ($search_result['movie'] as $movie_key => $movie): ?>
        <a href="/movies/view/<?php echo $movie['slug']; ?>"><?php echo $movie['name']; ?></a><br><br> <?php echo $movie['descriptions'].'<br>'; ?>
       <h2>MOVIE var_dump($movie)</h2>
       <?php echo var_dump($movie); ?>

       <h2>MOVIE NAME</h2>
       <?php echo $movie['name']; ?>

    <?php endforeach ?>
<?php endif ?>

результат:

13 Hours

During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos.
MOVIE var_dump($movie)
array(11) { ["id"]=> string(3) "861" ["slug"]=> string(8) "13-hours" ["name"]=> string(8) "13 Hours" ["director"]=> string(11) "Michael Bay" ["descriptions"]=> string(103) "During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos." ["year"]=> string(4) "2016" ["rating"]=> string(3) "7.3" ["poster"]=> string(94) "https://static.imovies.cc/movies/posters/240/58/450148058-cc1843a997480613ca3b67a05e55892a.jpg" ["player_code"]=> string(60) "https://api.imovies.cc/api/v1/movies/450148058/files/1237060" ["add_date"]=> string(19) "2020-11-22 23:16:31" ["category_id"]=> string(1) "1" }
MOVIE NAME
13 Hours
0
сделал для всех трех 
<?php if(is_array($search_result['movie']) && sizeof($search_result['movie']) > 0): ?>
    <?php foreach ($search_result['movie'] as $movie_key => $movie): ?>
        <a href="/movies/view/<?php echo $movie['slug']; ?>"><?php echo $movie['name']; ?></a><br><br> <?php echo $movie['descriptions'].'<br>'; ?>
       <h2>MOVIE var_dump($movie)</h2>
       <?php echo var_dump($movie); ?>

       <h2>MOVIE NAME</h2>
       <?php echo $movie['name']; ?>

    <?php endforeach ?>
<?php endif ?>

<?php if(is_array($search_result['serial']) && sizeof($search_result['serial']) > 0): ?>
        <?php foreach ($search_result['serial'] as $serial_key => $serial): ?>
            <a href="/serials/view/<?php echo $serial['slug']; ?>"><?php echo $serial['name']; ?></a><br><br> <?php echo $serial['descriptions'].'<br>'; ?>
            <?php echo $serial['name']; ?>
       <?php endforeach ?>
<?php endif ?>

<?php if(is_array($search_result['animation']) && sizeof($search_result['animation']) > 0): ?>
        <?php foreach ($search_result['animation'] as $animation_key => $animation): ?>
            <a href="/animations/view/<?php echo $animation['slug']; ?>"><?php echo $animation['name']; ?></a><br><br> <?php echo $animation['descriptions'].'<br>'; ?>
            <?php echo $animation['name']; ?>
       <?php endforeach ?>
<?php endif ?>

результат 

13 Hours

During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos.
MOVIE var_dump($movie)
array(11) { ["id"]=> string(3) "861" ["slug"]=> string(8) "13-hours" ["name"]=> string(8) "13 Hours" ["director"]=> string(11) "Michael Bay" ["descriptions"]=> string(103) "During an attack on a U.S. compound in Libya, a security team struggles to make sense out of the chaos." ["year"]=> string(4) "2016" ["rating"]=> string(3) "7.3" ["poster"]=> string(94) "https://static.imovies.cc/movies/posters/240/58/450148058-cc1843a997480613ca3b67a05e55892a.jpg" ["player_code"]=> string(60) "https://api.imovies.cc/api/v1/movies/450148058/files/1237060" ["add_date"]=> string(19) "2020-11-22 23:16:31" ["category_id"]=> string(1) "1" }
MOVIE NAME
13 Hours

значит работает но как вывести теперь чтоб красиво было? ))
0

круто !! спасибо огромное брат

сделаю все 

отпишусь вечером что и как

еще раз спасибо

0
короче я убрал descriptions из модели и вставил year
теперь файл search  сделал так

<h2>Search (Result <?php echo $tCount; ?>)</h2>
<?php if(is_array($search_result['movie']) && sizeof($search_result['movie']) > 0): ?>
    <?php foreach ($search_result['movie'] as $movie_key => $movie): ?>
       <h3><a href="/movies/view/<?php echo $movie['slug']; ?>"><?php echo $movie['name']; ?></a><br><br> <?php echo $movie['year'].'<br>'; ?></h3> 


    <?php endforeach ?>
<?php endif ?>

<?php if(is_array($search_result['serial']) && sizeof($search_result['serial']) > 0): ?>
        <?php foreach ($search_result['serial'] as $serial_key => $serial): ?>
            <h3><a href="/serials/view/<?php echo $serial['slug']; ?>"><?php echo $serial['name']; ?></a><br><br> <?php echo $serial['year'].'<br>'; ?></h3>
            <?php echo $serial['name']; ?>
       <?php endforeach ?>
<?php endif ?>

<?php if(is_array($search_result['animation']) && sizeof($search_result['animation']) > 0): ?>
        <?php foreach ($search_result['animation'] as $animation_key => $animation): ?>
            <h3><a href="/animations/view/<?php echo $animation['slug']; ?>"><?php echo $animation['name']; ?></a><br><br> <?php echo $animation['year'].'<br>'; ?></h3>
            <?php echo $animation['name']; ?>
       <?php endforeach ?>
<?php endif ?>

результат таков

Search (Result 3)
13 Hours

2016

не могу понять почему пишет Search (Result 3)
0

спасибо.проверю

0
поправил контроллер как ты и сказал
вот так вот
<?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, '', "&");

                /*$count = count($this->search_model->search($q, 0 ,0));*/
                $mod = $this->search_model->search($q, 0 ,0);

                $count_movie = count($mod['movie']);
                $count_serial = count($mod['serial']);
                $count_animation = count($mod['animation']);

                $count = $count_movie + $count_serial + $count_animation;

                $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');
        }
    }

надеюсь вставил в правильное место
так теперь говорит что ошибка в файле search.php в папке views ругает на tcount
вот 
Search (Result
A PHP Error was encountered
Severity: Notice

Message: Undefined variable: tCount

Filename: views/search.php

Line Number: 1

Backtrace:

File: C:\xampp\htdocs\movieworld\application\views\search.php
Line: 1
Function: _error_handler

File: C:\xampp\htdocs\movieworld\application\controllers\Search.php
Line: 72
Function: view

File: C:\xampp\htdocs\movieworld\index.php
Line: 315
Function: require_once

)
13 Hours

2016

0

теперь все работает

да я хочу поскорее закончить этот проект и уже потом создать чет новое и все тут все 6 этапов заново пересмотреть

тебе спасибо

0

Тут есть такой же вопрос с ответом уже:

https://fructcode.com/ru/qa/kak-sdelat-tak-ctob-search-rabotala-dla-tablic-movie-i-serial-g4wxyg/

Нужно union использовать или несколько select потом все в один массив соединять через push и цикл.

0

Там же есть пример даже с SQL кодом, только нужно свои названия таблиц подставить и все. Можно даже просто скопировать SQL код из примера на который я скидывал ссылку (ранее заданный вопрос) и через codeigniter делать запрос на чистом SQL:

https://codeigniter.com/userguide3/database/queries.html#query-bindings

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));

,Только вместо этого sql поставить sql из примера и заменить %Интерстеллар% на '?', потом в $this->db->query подставить %Интерстеллар% как в примере выше.

0
в папке views файл search.php

Удали цикл и напиши:

<pre>
<?php echo var_dump($search_result); ?>
</pre>

Что выводит? 

0

Ну а цикл тогда зачем такой пишешь, если у тебя ассоциативный массив с ключами movie, serial, animation? А цикл пишешь как будто у тебя простой массив:

	<?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 foreach ($search_result as $key => $value): ?>

<?php if(sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
       <!-- Тут код для вывода фильмов из таблицы movie  -->
        
    <?php endforeach ?>
<?php endif ?>

<?php if(sizeof($value['serial']) > 0): ?>
        <?php foreach ($value['serial'] as $serial_key => $serial): ?>
        <!-- Тут код для вывода сериалов из таблицы serial  -->
        
       <?php endforeach ?>
<?php endif ?>

<?php if(sizeof($value['animation']) > 0): ?>
        <?php foreach ($value['animation'] as $animation_key => $animation): ?>
            <!-- Тут код для вывода аниме из таблицы animation-->
            
       <?php endforeach ?>
<?php endif ?>

<?php endforeach ?>

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

5. Массивы и функции для работы с массивами

https://fructcode.com/ru/courses/php-and-mysql/

0
или чтото опять неправильно делаю?

Ты обращаешься к value:

<a href="/movies/view/<?php echo $value['slug']; ?>">

внутри цикла для массива movie:

<?php foreach ($search_result as $key => $value): ?>

<?php if(sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
       <a href="/movies/view/<?php echo $value['slug']; ?>"><?php echo $value['name']; ?></a><br><br> <?php echo $value['descriptions'].'<br>'; ?>
        
    <?php endforeach ?>
<?php endif ?>

Нужно обращаться к $movie.

Пересмотри уроки про массивы, если возникают еще такие вопросы:

5. Массивы и функции для работы с массивами

https://fructcode.com/ru/courses/php-and-mysql/

0
эх друг да я эти уроки пересмотриваю уже сколько раз,трудно что в курсе автор работает только с одной таблицой а мне захотелось сразу 3 но всеже пересмотривая уроки,спрашивая тут с трудом но всеже многое сделал.

Без разницы сколько таблиц, с таблицами это вообще никак не связано, это просто массивы и циклы.

1. Еще один <?php endforeach ?> должен стоять в конце (после <?php endif ?>):

<?php foreach ($search_result as $key => $value): ?>

<?php if(sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
       <a href="/movies/view/<?php echo $movie['slug']; ?>"><?php echo $value['name']; ?></a><br><br> <?php echo $value['descriptions'].'<br>'; ?>
        
    <?php endforeach ?>
<?php endif ?>

2. Покажи var_dump($movie):

<?php foreach ($search_result as $key => $value): ?>

<?php if(sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
       <!-- Тут код для вывода фильмов из таблицы movie  -->
       <pre>
           <?php echo var_dump($movie); ?>
       </pre>
        
    <?php endforeach ?>
<?php endif ?>

<?php endforeach ?>
0

Исправь на это и покажи вывод:

<?php foreach ($search_result as $key => $value): ?>

       <pre>
           <?php echo var_dump($value); ?>
       </pre>

<?php if(is_array($value['movie']) && sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
    
       <pre>
           <?php echo var_dump($movie); ?>
       </pre>
        
    <?php endforeach ?>
<?php endif ?>

<?php endforeach ?>

0

В контроллере или модели менял что-то? Раньше в var_dump были movie, serial и animation.

0

Тогда такой вывод покажи:

<h2>var_dump($search_result)</h2>
<pre>
     <?php echo var_dump($search_result); ?>
</pre>


<?php foreach ($search_result as $key => $value): ?>
        <h2>var_dump($value)</h2>
       <pre>
           <?php echo var_dump($value); ?>
       </pre>

<?php if(is_array($value['movie']) && sizeof($value['movie']) > 0): ?>
    <?php foreach ($value['movie'] as $movie_key => $movie): ?>
       <h2>var_dump($movie)</h2>
       <pre>
           <?php echo var_dump($movie); ?>
       </pre>
        
    <?php endforeach ?>
<?php endif ?>

<?php endforeach ?>
0

Тогда так попробуй:

<?php if(is_array($search_result['movie']) && sizeof($search_result['movie']) > 0): ?>
    <?php foreach ($search_result['movie'] as $movie_key => $movie): ?>
       <!-- Тут код для вывода фильмов из таблицы movie  -->
       <h2>MOVIE var_dump($movie)</h2>
       <?php echo var_dump($movie); ?>

       <h2>MOVIE NAME</h2>
       <?php echo $movie['name']; ?>

    <?php endforeach ?>
<?php endif ?>

<?php if(is_array($search_result['serial']) && sizeof($search_result['serial']) > 0): ?>
        <?php foreach ($search_result['serial'] as $serial_key => $serial): ?>
        <!-- Тут код для вывода сериалов из таблицы serial  -->
        
       <?php endforeach ?>
<?php endif ?>

<?php if(is_array($search_result['animation']) && sizeof($search_result['animation']) > 0): ?>
        <?php foreach ($search_result['animation'] as $animation_key => $animation): ?>
            <!-- Тут код для вывода аниме из таблицы animation-->
            
       <?php endforeach ?>
<?php endif ?>

0
Message: Undefined variable: value

Убери $value, нет же $value, есть только $movie:

<?php echo $value['name']; ?></a><br><br> <?php echo $value['descriptions'].'<br>'; ?>

Вот так напиши:

<?php if(is_array($search_result['movie']) && sizeof($search_result['movie']) > 0): ?>
    <?php foreach ($search_result['movie'] as $movie_key => $movie): ?>
        <a href="/movies/view/<?php echo $movie['slug']; ?>"><?php echo $movie['name']; ?></a><br><br> <?php echo $movie['descriptions'].'<br>'; ?>
    <?php endforeach ?>
<?php endif ?>
0

Значит работает. Так будет для трех таблиц:

<?php if(is_array($search_result['movie']) && sizeof($search_result['movie']) > 0): ?>
    <?php foreach ($search_result['movie'] as $movie_key => $movie): ?>
       <!-- Тут код для вывода фильмов из таблицы movie  -->
       <?php echo $movie['name']; ?>

    <?php endforeach ?>
<?php endif ?>

<?php if(is_array($search_result['serial']) && sizeof($search_result['serial']) > 0): ?>
        <?php foreach ($search_result['serial'] as $serial_key => $serial): ?>
            <!-- Тут код для вывода сериалов из таблицы serial  -->
            <?php echo $serial['name']; ?>
       <?php endforeach ?>
<?php endif ?>

<?php if(is_array($search_result['animation']) && sizeof($search_result['animation']) > 0): ?>
        <?php foreach ($search_result['animation'] as $animation_key => $animation): ?>
            <!-- Тут код для вывода аниме из таблицы animation-->
            <?php echo $animation['name']; ?>
       <?php endforeach ?>
<?php endif ?>
0

<?php echo var_dump($movie); ?> убери и дальше вертка как в уроках.

0
не могу понять почему пишет Search (Result 3)

Потому что:

$count = count($this->search_model->search($q, 0 ,0));
$this->data['tCount'] = $count;

Там другую логику нужно писать, я полагаю, если три таблицы = три массива, даже если они пустые их 3, поэтому такой результат в count. Нужно считать count из конкретного массива из каждой таблицы, примерно так:

$mod = $this->search_model->search($q, 0 ,0);

$count_movie = count($mod['movie']);
$count_serial = count($mod['serial']);
$count_animation = count($mod['animation']);

$count = $count_movie + $count_serial + $count_animation;
1
так теперь говорит что ошибка в файле search.php в папке views ругает на tcount
Message: Undefined variable: tCount

Эта ошибка говорит о том, что не задана переменная tCount. Строчка с tCount у тебя закоментирована:

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

А во view ее пытаешься вызывать:

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

Это самые основы PHP, не связанные с базами данных, фреймворками. Стоит пересмотреть курс по php. Дальше только сложнее будет, если пока такие ошибки не можешь распознать.

Sign up or Log in to write an answer