Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否需要分页?_Php_Pagination_Limit - Fatal编程技术网

Php 是否需要分页?

Php 是否需要分页?,php,pagination,limit,Php,Pagination,Limit,分页重要吗?如果您有大约200个条目,会发生什么。它会减缓人们使用网站的速度吗 抱歉,如果这听起来像一个简单的问题,只是想知道,新的游戏 谢谢 更新: 看完答案。我认为使用它们很重要。那么我如何使用limit搜索页面呢。不要寻找花哨的解决方案。良好的分页将有助于减少为客户提供的页面的重量和数据库的查询费用。(因为您只需要加载10或20个项目,而不是1000个) 当然,用户体验也非常重要。没有人想在网页上滚动几天来查找内容。是否需要分页?视情况而定。每次我编写任何列出数据库中实体的页面时,我都会对

分页重要吗?如果您有大约200个条目,会发生什么。它会减缓人们使用网站的速度吗

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

谢谢

更新:


看完答案。我认为使用它们很重要。那么我如何使用limit搜索页面呢。不要寻找花哨的解决方案。

良好的分页将有助于减少为客户提供的页面的重量和数据库的查询费用。(因为您只需要加载10或20个项目,而不是1000个)


当然,用户体验也非常重要。没有人想在网页上滚动几天来查找内容。

是否需要分页?视情况而定。每次我编写任何列出数据库中实体的页面时,我都会对它们进行分页(按需)

但是如果我要添加一个,比如说,新的
客户端
,它可能有一个
状态
?在这种情况下,显示所有状态的选择框将不会分页。因为它便于用户阅读,并且通常不会加载大量数据


但对于更复杂和更大的查询,您必须始终设置限制并按需加载数据库中的数据。所有的软件都在成长。如果你不翻页,总有一天你会头疼。

我认为心理障碍比技术障碍更大。大多数硬件能够非常快速地对大量文本进行分页。然而,人们不太可能通篇阅读一篇非常乏味的文章

为了方便用户,通常最好将大量文本分成小块,并提供全文作为下载

此外,线条的长度和间距对于吸引观众也很重要。我建议行距为1.5em,每行最多15个字


与印刷媒体不同的是,人们不太可能走到最后,为了找出谁在偷听,如果他们不喜欢读几段,他们就会放弃。想象一下,读者的手指放在左边的按钮上,另一个手指放在滚轮上,就像你现在可能正在做的那样,只是渴望离开这个页面阅读其他内容。

这会给人一种更好的完成感,如果你正确使用它,会有更好的方式来展示你希望用户看到的内容(最划算、最便宜的价格等)快速。在我看来,这也会让他们的注意力更集中。

将结果分成多个页面更高效、更快捷、更方便服务器

首先,不管一个页面上有多少个结果,大多数用户都不会查看第一个X结果以外的内容,因此会有很多未使用的结果被检索、处理并发送到客户端,这浪费了带宽和CPU时间。事实上,通过分页,您增加了他们继续查看超出他们需要的内容的机会如果全部在一页上,uld已停止

第二,如果这仅仅是文本数据,那么即使对于大量数据来说也会非常快,但是如果你加入了必须为每个结果显示的图片和内容,比如在一个目录中,那么事情真的开始减缓返回更多结果的速度

SQL中通过LIMIT的分页是通过使用LIMIT范围来完成的。在SQL查询中为LIMIT指定一个参数时,它将返回多达该数量的结果,因此
SELECT*FROM table LIMIT 5
将最多返回5个结果。当指定两个参数时,它将跳过结果,直到到达第一个参数,然后返回因此,
SELECT*FROM table LIMIT 40,10
将从第41个结果开始最多返回10条记录

因此,您需要的是某种方式来告诉服务器客户端需要什么页面或结果,这通常是通过分页链接完成的,比如:
http://www.domain.com/search.php?p=4
http://www.domain.com/search.php?r=40
,然后通过$\u GET使用该值来确定SQL语句中的限制ry应该是。类似于(在本例中通过get传递页码):


如何使用limit进行分页?可以编辑以包含其他信息。您还必须将搜索条件传递到每个页面,无论是通过$\u GET还是$\u SESSION或其他方式,并且可能最好先进行计数查询,以获得总结果,并将结果保存在$\u SESSION或其他任何地方,这样您就不必进行计数每一页。
<?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));
?>