gpt4 book ai didi

php - 如何限制mysql行选择最新的50行

转载 作者:行者123 更新时间:2023-11-29 21:01:47 25 4
gpt4 key购买 nike

如何限制 mysql 行选择最新的 50 行,并使用下一个按钮,以便在不知道确切行数的情况下选择接下来的 50 行?

我的意思是表中的行数可能会增加。好吧,我会清楚地解释一下:我正在使用 php mysql html 开发一个网络应用程序作为我的文档管理系统项目。一切都已完成,但在检索文档时,我的意思是可能有数千个文档。

我的信息表中的所有文档都在主页上同时检索,这看起来不太好。因此,我想添加页面,以便仅将最新的 50 个文档放置在第一页中,接下来的 50 个文档放置在第二页中,依此类推。

但是为什么我每次都知道确切的行数,并且每次添加新文档时我都无法更改代码,所以...我认为 numrows 可能没有用...

请帮帮我...

最佳答案

您正在寻找的称为分页,实现简单分页的最简单方法是在 SQL 查询中使用 LIMIT x , y

您实际上并不需要您拥有的总行数,您只需要两个数字:

  • 您已经查询过的元素数量,以便您知道必须在哪里继续下一个查询。
  • 您想要列出每个查询的元素数量(例如,按照您的建议,为 50 个)。

假设您要查询前 50 个元素,您应该在查询末尾插入 LIMIT 0,50,之后您需要将您已经查询过的事实存储在某处查询了 50 个元素,因此下次将限制更改为 LIMIT 50,50(从元素编号 50 开始,查询后面的 50 个元素)。

顺序取决于插入条目时您所创建的字段。通常,您可以更新表并添加字段created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,然后只需使用ORDER BYcreated,因为从现在开始,您的条目将存储它们创建的确切时间为了查找最新的值(如果您有AUTO_INCRMENT id,您也可以查找更大的值)。

这可能是该系统使用 php 和 MySQL 的示例:

$page = 1;
if(!empty($_GET['page'])) {
$page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT);
if(false === $page) {
$page = 1;
}
}

// set the number of items to display per page
$items_per_page = 50;

// build query
$offset = ($page - 1) * $items_per_page;
$sql = "SELECT * FROM your_table LIMIT " . $offset . "," . $items_per_page;

我找到了这个post当我第一次尝试制作这个分页系统时非常有用,所以我建议您检查一下(也是示例的来源)。

希望这对您有帮助,抱歉我无法为您提供更好的示例,因为我没有您的代码。

关于php - 如何限制mysql行选择最新的50行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37163920/

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