特定の条件に一致する一連の行を出力するSQLクエリがあります。私はこのプロセスにページネーションを追加して、使いやすくしています。PHPのページネーションを追加する
私のプロセスは次のようである:このページの下限うち
- 図は、このページの上限を把握
- プル(例1 - - 20、21 40、など。) MySQLのテーブルからそれらの行
- 一覧それらの行
- 20以上がある場合、
floor($totalRows/20)
ページ - を追加???
- ページネーション
マイページネーションは半正常に動作しているようだが、最後のページには、(それが何であれ)それが必要行の量より1少ない示しています。ここに私のコード:
$page = $_GET["p"];
$bL = (($page - 1) * 20) + 1;
$tL = $page * 20;
$total = mysql_num_rows(mysql_query("SELECT id FROM coupons WHERE zone = '$zone' AND dateExp > CURDATE()"));
if($tL > $total)
{
$tL = (($page - 1) * 20) + ($total % 20);
}
$gotRows = "SELECT * FROM coupons WHERE zone = '$zone' AND dateExp > CURDATE() ORDER BY retailerName LIMIT " . $bL . ", " . $tL;
//list all those rows
$numPages = floor($total/20) + 1;
echo "<p id='results'>" . $total . " result" . $plural . " · Displaying " . $bL . " to " . $tL . " </p>";
echo "</table>";
$pG = 1;
while($pG <= $numPages)
{
if($pG == $page)
{
echo $pG;
}
else
{
echo "<a href='zone?z=" . $zone . "&p=" . $pG . "'>" . $pG . "</a>";
}
if($pG != $numPages)
{
echo "·";
}
$pG = $pG + 1;
}
何か助けてください?
編集:私は問題を解決しませんでした。しかし、間違っている下のページリンクに関する私の問題は依然として持続しています。 1ページ目は正常に動作します。「1」はリンクではなく「2」です。ただし、ページ2では、リンクとして「1」のみが表示されます。 「2」は表示されません。
PHP/MySQLページネーションを扱っているので、たくさんの質問があります。既に見てきましたか? – drudge
ページネーションがうまくいきました - 私はページリンクのバグを修正しようとしています。 – AKor