私は絶対に完璧に作品を持っているコード:カウンターヘルプ - ピュアPHP - 自己作成したページネーション
<?
$maxresults = 10;
$total = $row[total];
$pagecount = $total/$maxresults;
if (!isset($_GET['page'])) { $_GET['page'] = '1'; }
$startcount = (($_GET['page'] - 1) * $maxresults + 1);
$stopcount = $startcount + ($maxresults - 1);
$lastTime = null;
$i='0';
$sc = $startcount;
$stmt=$db->prepare("// SELECT STATEMENT");
$stmt->bindParam(':user', $username);
$stmt->execute();
while ($row = $stmt->fetch()) {
if (!($sc > $stopcount)) {
$i++;
if($row['time'] !== $lastTime) {
if ($lastTime === NULL) {
echo '// close of loop';
} else {
echo '// loop grouping as title';
}
$lastTime = $row['time'];
}
if ($i >= $sc) { ?>
// the html to loop
<?
$sc++;
}
}
}
?>
進むと戻るボタンを作成するのは簡単です。 $ _GET ['page']> 1なら前のボタンをアクティブにすると、$ _GET ['page'] * 10> $ totalの場合は次のボタンをアクティブにします。
正しい数式とループはわかりませんが、常に正しい番号のページ番号を表示できます。私は常に3番目の数字に基づいて5を表示したい。だから、1は5つのリンクが必要です:1 - 5,2は1-5と表示され、3-4は2-6、5は3-7と表示されます。
明らかに、私は2と取得ページが3より大きい場合は、現在の$ _GET [ページ]から2を減算しますが、テスト結果を考慮してその結果が高いかどうかを確認する必要があります。したがって、結果が10以上の場合は2を表示し、16ページの場合は17と18は表示する170と180の結果が表示されるようにします。
おそらく私は長い間コードを見つめているだけですが、コードページを試しても私の頭に正しい数式やループが得られないようです。
あなた自身の解決策を見つけたことを嬉しく思うブルース。 –