gpt4 book ai didi

php - 需要分页吗?

转载 作者:行者123 更新时间:2023-12-04 21:07:06 28 4
gpt4 key购买 nike

分页重要吗?如果您有 200 个条目,会发生什么。对于使用它的人来说,它会减慢网站的速度吗?

对不起,如果这听起来像一个简单的问题,只是想知道,新的游戏。

谢谢

更新:

阅读答案后。我认为使用它们很重要。那么我如何使用限制进行搜索页面。不是在寻找花哨的解决方案..

最佳答案

将结果分成多个页面更高效、更快速且对服务器友好。

首先,无论一页上有多少个结果,大多数用户都不会超越第一个 X 结果,因此会有很多未使用的结果被检索、处理并发送到客户端,这浪费了带宽和 CPU 时间。事实上,通过分页,你增加了他们继续前进的机会,如果一切都在一页上,他们就会停下来。

二,如果这只是文本数据,即使对于大量数据,它也会非常快,但是如果您放入必须为每个结果显示的图片和内容,例如在目录中,那么事情真的开始变慢了返回的结果越多。

在 SQL 中通过 LIMIT 进行分页是通过使用限制范围来完成的。当在 SQL 查询中为 LIMIT 提供单个参数时,它将返回该数量的结果,因此 SELECT * FROM table LIMIT 5最多返回 5 个结果。当给出两个参数时,它会跳过结果直到到达第一个参数,然后返回到下一个结果数。所以,SELECT * FROM table LIMIT 40,10从第 41 个结果开始,最多返回 10 个记录。

所以,你需要的是某种方式来告诉服务器客户端想要什么页面或结果,通常这是通过分页链接完成的,例如:http://www.domain.com/search.php?p=4http://www.domain.com/search.php?r=40 ,然后您可以通过 $_GET 使用该值来确定 SQL 查询中的限制。类似于(在这种情况下使用通过 get 传递页码):

<?php
$sql = "SELECT * FROM `table`"; //Set up initial query string

$max_per_page = 20; //Max results per page, can be drawn from elsewhere/configuration file or something or declared directly
if(isset($_GET['p'])) //Check to see if $_GET['p'] is set
{
$current_limit = abs((int)$_GET['p'] - 1) * $max_per_page; //Current limit = max * (current page - 1) other wise, page 2 would have a starting point of 40 instead of 20 like it should. When passing the result number to start on, you'd just use that instead
}
else
{
$current_limit = 0;
}
$sql .= ' LIMIT ' . $current_limit . ', ' . $max_per_page; //Construct LIMIT on end of query string
$result = mysql_fetch_assoc(mysql_query($sql));
?>

哦,要计算出总结果,你可以做一个 SELECT COUNT(*) FROM table WHERE etc. etc. type 语句开始,以便您知道总结果,因为您知道每页的最大结果,因此可用于确定需要多少页。

关于php - 需要分页吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5346777/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com