【发布时间】:2011-08-23 03:42:39
【问题描述】:
我有一个 Ajax 调用来创建一个图片库。有一个组合框来设置每页的图像数量,以及用于浏览页面的分页。它工作正常,除了如果一个人在最后一页,并且他们增加了每页的图像数量,它会重新加载到当前页码。这是一个问题,因为现在页面少了,所以页面是空白的。换句话说,例如,您最终会使用page 7 of 5。
我认为问题出在 PHP 中,因为这是计算页数的地方。我想出了一个if 声明来处理这个问题:
if ($page > $no_of_paginations) {
$page = $no_of_paginations;
}
但是,我不知道该放在哪里。原因是,$page 需要在 mysql_query之前定义,但 $no_of_paginations 在查询之后定义。
有什么想法可以让这个功能发挥作用吗?
我会在下面贴出相关代码:
<?php
$page = 0;
if(isset($_GET['page'])){
$page = (int) $_GET['page'];
}
$cur_page = $page;
$page -= 1;
if((int) $_GET['imgs'] > 0){
$per_page = (int) $_GET['imgs'];
} else {
$per_page = 16;
}
$start = $per_page * $page;
include"db.php";
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` ".
"ORDER BY `imgDate` DESC LIMIT $start, $per_page";
$result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());
echo "<ul class='new_arrivals_gallery'>";
while($row = mysql_fetch_assoc($result_pag_data)) {
echo "<li><a target='_blank' href='new_arrivals_img/".$row['imgURL']."' class='gallery' title='".$row['imgTitle']."'><img src='new_arrivals_img/thumbnails/".$row['imgURL']."'></a></li>";
}
echo "</ul>";
/* --------------------------------------------- */
$query_pag_num = "SELECT COUNT(*) AS count FROM images";
$result_pag_num = mysql_query($query_pag_num);
$row = mysql_fetch_array($result_pag_num);
$count = $row['count'];
$no_of_paginations = ceil($count / $per_page);
?>
感谢您的帮助!
【问题讨论】: