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

0
0

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


Jack Iakokovenko

11 months ago

Похожие вопросы

32 ответов





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

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

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

student_F3tCJLdd

11 months ago

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

Jack Iakokovenko

11 months ago

Там же есть пример даже с 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 подставить %Интерстеллар% как в примере выше.

student_F3tCJLdd

11 months ago
я создал модель так:
<?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

Jack Iakokovenko

11 months ago
в папке views файл search.php

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

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

Что выводит? 

student_F3tCJLdd

11 months ago
сдела как ты сказал
ищу фильм 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) {
  }
}

Jack Iakokovenko

11 months ago

Ну а цикл тогда зачем такой пишешь, если у тебя ассоциативный массив с ключами 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/

student_F3tCJLdd

11 months ago
я делал все по видео как в уроке только модель создал по другому
а в
<!-- Тут код для вывода фильмов из таблицы 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 ?>

или чтото опять неправильно делаю?
я конечно тут всех задолбал но простите так я и учусь

Jack Iakokovenko

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

Ты обращаешься к 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/

student_F3tCJLdd

11 months ago
эх друг да я эти уроки пересмотриваю уже сколько раз,трудно что в курсе автор работает только с одной таблицой а мне захотелось сразу 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

Jack Iakokovenko

11 months ago
эх друг да я эти уроки пересмотриваю уже сколько раз,трудно что в курсе автор работает только с одной таблицой а мне захотелось сразу 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 ?>

student_F3tCJLdd

11 months ago
сделал,теперь ваще катастрофа ))

<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

Jack Iakokovenko

11 months ago

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

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

student_F3tCJLdd

11 months ago
спасибо друг что помогаешь,там наверху это сочтется тебе ))
сделал 

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

Jack Iakokovenko

11 months ago

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

student_F3tCJLdd

11 months ago

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

Jack Iakokovenko

11 months ago

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

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

student_F3tCJLdd

11 months ago
<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

Jack Iakokovenko

11 months ago

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

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

student_F3tCJLdd

11 months ago
сделал для 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

Jack Iakokovenko

11 months ago
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 ?>

student_F3tCJLdd

11 months ago
сделал так
<?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

Jack Iakokovenko

11 months ago

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

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

student_F3tCJLdd

11 months ago
сделал для всех трех 
<?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

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

Jack Iakokovenko

11 months ago

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

student_F3tCJLdd

11 months ago

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

сделаю все 

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

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

Jack Iakokovenko

11 months ago
короче я убрал 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)

Jack Iakokovenko

11 months ago
не могу понять почему пишет 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;

student_F3tCJLdd

11 months ago

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

Jack Iakokovenko

11 months ago
поправил контроллер как ты и сказал
вот так вот
<?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

Jack Iakokovenko

11 months ago
так теперь говорит что ошибка в файле search.php в папке views ругает на tcount
Message: Undefined variable: tCount

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

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

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

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

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

student_F3tCJLdd

11 months ago

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

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

тебе спасибо

Jack Iakokovenko

11 months ago

Ваш ответ