Я показываю результаты точного соответствия из базы данных с помощью API похожих фильмов TMDB.
$imdbid = $mysqli->real_escape_string($_GET['movie']);
$similarapiurl = "https://api.themoviedb.org/3/movie/{$imdbid}/similar?api_key=cfe422613b250f702980a3bbf9e90716";
$similarmovies = json_decode(file_get_contents($similarapiurl), true);
$i=0;
foreach ($similarmovies['results'] AS $similarmovie) {
$movietitle = $similarmovie['original_title'];
$movieyear = substr($similarmovie['release_date'], 0, 4);
$sql = "SELECT * FROM Movies WHERE EngTitle COLLATE utf8_general_ci='".$movietitle."' AND Year LIKE '%".$movieyear."%'";
$movieresult = $mysqli->query($sql);
if ($i==10) break;
if ($movieresult->num_rows > 0) {
while($row = $movieresult->fetch_assoc()) {
$i++;
?>
<div class="movie-card" data-id="<?php echo $row['ImdbID']; ?>">
<div class="item-card">
<div class="rating">
IMDB <span class="score"><?php echo $row['ImdbRating']; ?></span>
</div>
<div class="overlay ov-show">
<div class="description">
<?php echo mb_strimwidth($row['Description'], 0, 80, "..."); ?>
</div>
<div class="info">
<i class="fa fa-info-circle"></i> დაწვრილებით
</div>
<div class="actions">
<a href="/similar/<?php echo $row['ImdbID']; ?>" class="like">
<i class="fa fa-heart"></i> მაჩვენე მსგავსი
</a>
</div>
</div>
<img src="<?php echo $row['PosterURL']; ?>" alt="<?php echo $row['EngTitle']; ?>">
</div>
<div class="subtitle">
<h6><?php echo $row['GeoTitle']; ?></h6>
<span class="meta"><?php echo $row['EngTitle']; ?> / <?php echo $row['Year']; ?></span>
</div>
</div>
<?php
} $movieresult->free();
}
}
}
Как видно из кода, я запускаю цикл foreach
для массива и внутри этого цикла while
для получения результатов из базы данных.Я прерываю цикл foreach на 10-м прогоне, чтобы он отображал только первые 10 результатов.
Теперь я хочу разбить на страницы.Я хочу запустить цикл, получить все $movietitle
и отобразить первые 10, остальные будут отображаться, но будут скрыты, а после нажатия кнопки или ссылки будет отображаться.Так что это будет выглядеть как нумерация страниц, но будет мгновенным, как содержимое с вкладками.
Я пробовал array_slice()
, но это не было правильно разрезать массив.Как я могу это сделать и должен ли я найти решение в JavaScript или в PHP?