MySQL查询结果的分页

随着数据库的增长,在单个页面上显示查询的所有结果已不再实用。这就是PHP和MySQL中分页的地方。您可以在多个页面上显示结果,每个页面都链接到下一个页面,以允许您的用户以一咬大小浏览网站上的内容。

01

04

教育资源网_1

设置变量

下面的代码首先连接到数据库。然后您需要知道要显示结果的哪个页面。if(!(isset($pagenum)))代码检查页码($pagenum)isn't设置,如果是,则将其设置为1。如果已经设置了页码,则忽略此代码。

您运行查询。应编辑$data行以应用于您的网站并返回计算结果所需的内容。然后,$行行仅计算查询结果的数量。

接下来,您定义$页面Å行,这是在转到下一页结果之前要在每页上显示的结果数。然后,您可以通过将结果(行)的总量除以每页所需的结果数来计算($last)的总页数。在这里使用CEIL将所有数字舍入到下一个整数。

接下来,代码运行检查以确保页码有效。如果该数字少于一个或大于页数,则会重置为内容最接近的页码。

最后,使用限制函数为结果设置范围($max)。起始编号是通过将每页的结果乘以比当前页面少一个来确定的。持续时间是每页显示的结果数量。

02

of 04

用于设置分页变量的代码

//连接到您的数据库

mysql U连接(34);your.hostaddress.com",&##34;用户名","密码")或模具(mysql Uerror());

mysql选择"地址&##34;)或die(mysql Uerror());

//这将检查是否有页码。如果没有,它将设置为第1页

如果(!(isset($pagenum)))

{

$pagenum=1;

}

//在这里,我们计算结果的数量82

//编辑$数据作为您的查询

$data=mysql#query("从topsites中选择*")或die(mysql UERROR());

$行=mysqlɨnumɨ行($data);

//这是每页显示的结果数量

$页面行=4;

//这告诉我们最后一页的页码94

$last=ceil($rows/$pageÅrows);

//这确保页码为'低于1,或超过我们的最大页面

如果($pagenum

{

$pagenum=1;

}

elseif($pagenum>$last)

{

$pagenum=$last;

}

//这设置了在我们的查询中显示的范围116

$max=&##39;limit'$pagenum-1)*$page U rows。''$page U rows;

03养肾的小知识

133 of 04 134

查询和结果

此代码从早期重新运行查询,只需稍作更改。这次它包含$max变量以将查询结果限制为属于当前页面的结果。查询后,您使用任何您希望的格式将结果显示为正常。

显示结果时,将显示当前页面以及存在的页面总数。这不是必要的,但知道这是很好的信息。

接下来,代码生成导航。假设是,如果您位于**页,则不需要链接到**页。由于这是**个结果,因此不存在上一页。所以代码检查(如果($pagenum==1))查看访问者是否在**页。如果是这样,那么什么都不会发生。如果没有,那么PHPëSELF和页码将生成指向**页和上一页的链接。

你做几乎相同的事情来生成另一侧的链接。但是,这次你要检查确保你在上一页上是't。如果是,那么您不需要链接到最后一页,也不存在下一页。

04

of 04

分页结果代码

//这是你的查询,同样的。。。**的区别是我们在其中添加了$max

$data UP=mysql#query("从topsites$max&##34;)或die(mysql#error());

//这是显示查询结果的地方

而($info=mysqlÅfetchÅarray($dataÅp))

{

打印$info['名称'];

echo"
";

}

echo"

";

//这向用户显示他们所在的页面以及页面总数

echo"--Page$pagenum of$last-

";

//首先,我们检查我们是否在**页。如果我们是,那么我们不需要'需要链接到前一页或**页,所以我们什么都不做。如果我们不是't,那么我们将生成指向**页和前一页的链接。

如果($pagenum==1)

{

}

其他

{

echo"

<-First";

回声"";

$上一个=$pagenum-1;

echo"<-上一个<&a>";

}

//只是一个垫片

echo"-----";

//这同样上面,只检查我们是否在最后一页,然后生成下一个和最后一个链接

如果($pagenum==$last)

{

}

其他{

$next=$pagenum+1;

echo"下一步><&a>";

回声"";

echo"last->><&a>";

}

?>