Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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_Mysql_Pagination - Fatal编程技术网

Php 如何执行页面控制?

Php 如何执行页面控制?,php,mysql,pagination,Php,Mysql,Pagination,我的意思是,获取有关页面项目数量的信息并进行sql查询的最有效方法是什么。或者我应该获取所有项,然后使用php函数裁剪数组 现在我做两个查询:第一个是计算所有项目,第二个是获取我需要的有限制的项目 好的,我会更具体一些。例如,我需要在我的页面上显示一个问题和这个问题的20个答案。在底部应该有页面控制:链接到下一页、上一页等等。我希望显示正确数量的链接(答案数量/20),当我转到任何链接时,我希望收到正确的答案(例如3d页面上的41到60)。那么,获取项目数量(答案)的最佳方法是什么,以显示适当数

我的意思是,获取有关页面项目数量的信息并进行sql查询的最有效方法是什么。或者我应该获取所有项,然后使用php函数裁剪数组

现在我做两个查询:第一个是计算所有项目,第二个是获取我需要的有限制的项目


好的,我会更具体一些。例如,我需要在我的页面上显示一个问题和这个问题的20个答案。在底部应该有页面控制:链接到下一页、上一页等等。我希望显示正确数量的链接(答案数量/20),当我转到任何链接时,我希望收到正确的答案(例如3d页面上的41到60)。那么,获取项目数量(答案)的最佳方法是什么,以显示适当数量的链接,并为每个链接获取适当的答案?

我假设您需要对要阅读的行数进行计数,以便进行分页或类似操作?我不理解在你的问题中你需要限制。但是,如果您只想计算已找到的行数,请使用以下方法之一

您可以选择所有行的计数,例如:

select count(*) as counted, name, address
from contact
或找到的行:

SELECT SQL_CALC_FOUND_ROWS, name, address
from contact
这可能是mysql特有的,我不确定

更新:

对于分页,您可以执行如下操作-(Psuedocode)

$rows=数组($result)
$num\u rows=sql\u calc\u found\u rows
每页$20
$pages=ceil($num\u行/per\u页)

页面
$rows\u此页面=array()

$rows\u this\u page=get\u value($rows,(最小索引)$page\u number*$per\u page-$per\u page,(最大索引)$page\u number*$per\u page-1)

我假设您需要对要读取的行数进行计数,以便进行分页或类似操作?我不理解在你的问题中你需要限制。但是,如果您只想计算已找到的行数,请使用以下方法之一

您可以选择所有行的计数,例如:

select count(*) as counted, name, address
from contact
或找到的行:

SELECT SQL_CALC_FOUND_ROWS, name, address
from contact
这可能是mysql特有的,我不确定

更新:

对于分页,您可以执行如下操作-(Psuedocode)

$rows=数组($result)
$num\u rows=sql\u calc\u found\u rows
每页$20
$pages=ceil($num\u行/per\u页)

页面
$rows\u此页面=array()

$rows\u this\u page=get\u values($rows,(最小索引)$page\u number*$per\u page-$per\u page,(最大索引)$page\u number*$per\u page-1)

我想你是想说你想知道查询中有多少项/答案,但为了分页,每次最多只能读取20项

首先:你真的应该寻找一个分页包;很多人以前都有过同样的问题,可能存在免费/开源和专有的编程语言和框架解决方案。(如果你说你用的是什么语言,我肯定有人能为你推荐解决方案。)

不管怎样,我知道我喜欢知道事情是如何运作的,所以它通常是这样做的:

据我所知,分页代码通过使用tblX中的
select count(*)进行一次查询来计算页面,其中有些东西将该数字除以每个页码的项目,并使用上限(例如4.1=>5)

要列出每页的结果,需要新的查询;不要担心计数查询比获得每个结果快得多——丢弃那些你不需要的结果——不要这样做(这就是成为头条新闻的原因)。类似于
从tblX中选择*,其中某物限制Y偏移量Z
,其中Y是每页的项目数,Z是
(请求的页面-1)*Y
;第1页的偏移量为0,第2页的偏移量为20(如果是Y),等等


但是,不要试图手动实现这一点,它不必要、繁琐且容易出错,最好利用您的时间定制一个现成的解决方案。

我猜您是想说您想知道查询中有多少项/答案,但每次最多只读取20项,以便分页

首先:你真的应该寻找一个分页包;很多人以前都有过同样的问题,可能存在免费/开源和专有的编程语言和框架解决方案。(如果你说你用的是什么语言,我肯定有人能为你推荐解决方案。)

不管怎样,我知道我喜欢知道事情是如何运作的,所以它通常是这样做的:

据我所知,分页代码通过使用tblX中的
select count(*)进行一次查询来计算页面,其中有些东西将该数字除以每个页码的项目,并使用上限(例如4.1=>5)

要列出每页的结果,需要新的查询;不要担心计数查询比获得每个结果快得多——丢弃那些你不需要的结果——不要这样做(这就是成为头条新闻的原因)。类似于
从tblX中选择*,其中某物限制Y偏移量Z
,其中Y是每页的项目数,Z是
(请求的页面-1)*Y
;第1页的偏移量为0,第2页的偏移量为20(如果是Y),等等


但是,不要尝试手动实现此功能,它不必要、繁琐且容易出错,最好利用您的时间定制一个现成的解决方案。

我不知道您要实现什么,您能重新制定问题吗?尝试搜索分页,已经回答了大量类似的问题我不知道你想完成什么,你能重新制定问题吗?尝试搜索页码,已经回答了大量类似的问题非常感谢,我需要限制以获得适当的项目(答案)或者我应该这么做?只有在需要已知行数的情况下才使用LIMIT。。例如,如果你想要前50个答案,你可以按最高分数排序,最多50个。那你根本就不需要计数了