在foreach循环内循环分页

时间:2018-05-09 17:24:41

标签: php loops foreach pagination

我正在使用TMDB类似的电影API显示数据库的精确匹配结果。

$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循环内部从数据库中获取结果。我在第10次运行中打破了foreach循环,所以它只显示前10个结果。

现在我要分页。我想运行循环,获取所有$movietitle并显示前10,休息以呈现但隐藏,并在按钮或链接点击后显示。所以它看起来像分页,但会像标签内容一样立即。

我尝试了array_slice(),但没有正确切割数组。我该怎么做?我应该在JavaScript或PHP中找到解决方案吗?

0 个答案:

没有答案
相关问题