任何人都可以向我解释我是如何制作1 2 3 4 5 ..... 9当你到达9时它会显示一个新行。因为目前它连续显示900个结果。我只需要解释如何开始。
分页脚本:
$k = 0; # The new index
$newArray = array(); # The new array
foreach($sortedImages as $soImg) {
$newArray[$k] = $soImg;
$k++;
}
$page = $_GET["page"];
$perPage = 10;
$total = $count;
$pages = ceil($count / $perPage);
for ($i = (($page-1)*$perPage); $i < min(($page*$perPage), $total); $i++) {
$newSortedImages[$i] = $newArray[$i];
}
这是我用来显示编号的脚本。
page: <?php
for($i = 1; $i <= $pages; $i++) {
echo('  <a href="?page=' . $i . '">' . $i . '</a>');
}
答案 0 :(得分:1)
模运算符对此特别有用......
for ($i = 1; $i <= $pages; $i++) {
echo('  <a href="?page=' . $i . '">' . $i . '</a>');
if ($i % 9 == 0) echo "<br />";
}
模运算符在除法计算中返回余数,当$ i可被9整除时,它返回零,这意味着你已经迭代了九个以上的结果。
更新:
你很接近 - 而不是迭代所有页面,只需从当前页面迭代9。
$page = 1;
if (isset($_GET["page"]) && is_numeric($_GET["page"])) $page = floor($_GET["page"]);
$offset = max(0, ($page + 9 - $total)); //push the start backwards if we are near the end
$start = $page - $offset;
$end = min($total, $start+9); // don't go past the total (if less then 9 items)
for ($i = $start; $i <= $end; $i++) {
echo('  <a href="?page=' . $i . '">' . $i . '</a>');
}
答案 1 :(得分:0)
$start = $_REQUEST['page'] ? : 0;
if ($start % 9 != 0) {
$start = 9 * floor($start/9);
}
$end = min($total, $start+9);
for ($i = $start; $i <= $end; $i++) {
echo "<a href='?page='.$i>".$i."</a>";
}