我有一个使用 MVC 设计模式在本地主机上构建的网站。我有一个点击按钮,它将显示我使用 TheMovieDatabaseAPI 获得的 TheMovieDatabase 中的所有流派。点击一个类型,我得到第 1 页的数据,有 20 个结果。但是,我不知道如何请求第 2 页的结果。这些请求是使用 PHP 发出的。
问问题
442 次
2 回答
1
我假设您正在使用分页,我还假设您正在使用 mySQL 作为数据库,我不确定您使用的是哪个框架,这是我使用的一个函数,您可以围绕它构建
function get_movie($page = 1){
global $database_connection;
$start = 0; //Don't modify this
$limit = 10; //set this to 20 to display 20 movies per page
$start = ($page - 1)* $limit;
//get the movie from the table
$sql = "SELECT genre FROM movie_table LIMIT $start, $limit";
$result = mysqli_query($database_connection, $sql);
while ($row = mysqli_fetch_array($result)){
echo "<div>$row['genre']</div>";
}
$movie_rows = mysqli_num_rows (mysqli_query($database_connection ,"SELECT * FROM movie_table"));
$total = ceil($testimony_rows / $limit);
if (isset($page)){
echo "<div>";
echo "<ul class='pager'>";
if($page > 1) {
echo "<a href='?page=".($page - 1)."' style='float: left;' class=' w3-sand w3-btn w3-margin w3-round'>Previous</a>";
}
for($i = 1; $i <= $total; $i++) {
if($i == $page) { echo "<li class='active current'>".$i."</li>"; }
else { echo "<li><a href='?page=".$i."'>".$i."</a></li>"; }
}
if($page != $total) {
echo "<a href='?page=".($page + 1)."' class='w3-btn w3-margin w3-sand w3-round'>Next</a>";
}
echo "</ul></div>";
}
}
于 2016-05-03T22:20:23.517 回答
0
您可以使用 limit 和 offset 来获得第 2 页的结果。
示例:- 如果您使用查询生成器来获取结果
$limit = 20;
$offset = 21;
$queryBuilder->select('d')
->from(<table name>, 'd')
->setMaxResults($limit)
->setFirstResult($offset)
->setParameter('limit', $limit)
->setParameter('offset', $offset);
如果您使用原始查询:
SELECT * FROM table LIMIT 20 OFFSET 21
否则你也可以使用分页器
$paginator = new \Doctrine\ORM\Tools\Pagination\Paginator($query);
$totalItems = count($paginator);
$pagesCount = ceil($totalItems / $pageSize);
// now get one page's items:
$paginator
->getQuery()
->setFirstResult($pageSize * ($currentPage-1)) // set the offset
->setMaxResults($pageSize); // set the limit
foreach ($paginator as $pageItem) {
echo "<li>" . $pageItem->getName() . "</li>";
}
于 2016-05-03T22:18:42.030 回答