Ктонибудь помогите реализовать поиск на сайте?
как сделать так чтоб поиск шел по всем таблицам базы данных?по уроку и конечному проекту автора делаю ищет только фильмы а мне надо чтоб искал фильмы отдельно сериалы отдельно.параметры таблицы в базе данных точно как у автора видео только фильмы и сериалы в отдельных таблицах.
32 ответов
я читал но куда все это делать не понял
я создал модель так:
<?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
сдела как ты сказал
ищу фильм 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) {
}
}
я делал все по видео как в уроке только модель создал по другому
а в
<!-- Тут код для вывода фильмов из таблицы 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 ?>
или чтото опять неправильно делаю?
я конечно тут всех задолбал но простите так я и учусь
эх друг да я эти уроки пересмотриваю уже сколько раз,трудно что в курсе автор работает только с одной таблицой а мне захотелось сразу 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
сделал,теперь ваще катастрофа ))
<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
спасибо друг что помогаешь,там наверху это сочтется тебе ))
сделал
<?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
не ничего там не трогал
<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
сделал для 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
сделал так
<?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
сделал для всех трех
<?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
значит работает но как вывести теперь чтоб красиво было? ))
круто !! спасибо огромное брат
сделаю все
отпишусь вечером что и как
еще раз спасибо
короче я убрал 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)
спасибо.проверю
поправил контроллер как ты и сказал
вот так вот
<?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
теперь все работает
да я хочу поскорее закончить этот проект и уже потом создать чет новое и все тут все 6 этапов заново пересмотреть
тебе спасибо
Тут есть такой же вопрос с ответом уже:
https://fructcode.com/ru/qa/kak-sdelat-tak-ctob-search-rabotala-dla-tablic-movie-i-serial-g4wxyg/
Нужно union использовать или несколько select потом все в один массив соединять через push и цикл.
Там же есть пример даже с 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 подставить %Интерстеллар% как в примере выше.
в папке views файл search.php
Удали цикл и напиши:
<pre>
<?php echo var_dump($search_result); ?>
</pre>
Что выводит?
Ну а цикл тогда зачем такой пишешь, если у тебя ассоциативный массив с ключами 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. Массивы и функции для работы с массивами
или чтото опять неправильно делаю?
Ты обращаешься к 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. Массивы и функции для работы с массивами
эх друг да я эти уроки пересмотриваю уже сколько раз,трудно что в курсе автор работает только с одной таблицой а мне захотелось сразу 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 ?>
Исправь на это и покажи вывод:
<?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 ?>
В контроллере или модели менял что-то? Раньше в var_dump были movie, serial и animation.
Тогда такой вывод покажи:
<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 ?>
Тогда так попробуй:
<?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 ?>
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 ?>
Значит работает. Так будет для трех таблиц:
<?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 ?>
<?php echo var_dump($movie); ?> убери и дальше вертка как в уроках.
не могу понять почему пишет 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;
так теперь говорит что ошибка в файле search.php в папке views ругает на tcount
Message: Undefined variable: tCount
Эта ошибка говорит о том, что не задана переменная tCount. Строчка с tCount у тебя закоментирована:
/*$this->data['tCount'] = $count;*/
А во view ее пытаешься вызывать:
<h2>Search (Result <?php echo $tCount; ?>)</h2>
Это самые основы PHP, не связанные с базами данных, фреймворками. Стоит пересмотреть курс по php. Дальше только сложнее будет, если пока такие ошибки не можешь распознать.