这是一个非常简单的例子:
对于页面,我们只需使用查询字符串。在这个例子中,让我们使用 $_GET['page'] 来初始化 $page 变量。如果未设置 GET 变量,我们默认为第 1 页。
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
现在,我们想知道查询中有多少页。为此,我们可以使用 COUNT() SQL 函数,然后将返回的数字除以我们想要的每页结果的数量。
$pages = implode(mysql_fetch_assoc(mysql_query("SELECT COUNT(key) FROM table")));
$pages = ceil($pages / 6);
现在,因为我们可能设置了其他 GET 变量,所以我们希望保留查询字符串。为此,我们只需将所有当前变量(当然第一页除外)组合成一个字符串。
$querystring = "";
foreach ($_GET as $key => $value) {
if ($key != "page") $querystring .= "$key=$value&";
}
然后,我们可以循环浏览页面,并回显指向它们的链接。使用条件或三元运算符,我们还可以为当前页面分配不同的类。
echo "Pages: ";
for ($i = 1; $i <= $pages; $i++) {
echo "<a " . ($i == $page ? "class=\"selected\" " : "");
echo "href=\"?{$querystring}page=$i";
echo "\">$i</a> ";
}
然后,要仅显示与当前页面相关的结果,我们可以使用 LIMIT SQL 子句,或者在本例中 LIMIT (($page - 1) * 6), 6(因为我们每页有 6 个结果,并且第一页需要从第 0 条记录开始查询)。
$result = mysql_query("SELECT * FROM table LIMIT " . (($page - 1) * 6) . ", 6");