MySQL查询结果的分页
随着数据库的增长,在单个页面上显示查询的所有结果已不再实用。这就是PHP和MySQL中分页的地方。您可以在多个页面上显示结果,每个页面都链接到下一个页面,以允许您的用户以一咬大小浏览网站上的内容。
01
04
设置变量
下面的代码首先连接到数据库。然后您需要知道要显示结果的哪个页面。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>";
}
?>