如何限制mysql行以选择最新的50行并使用下一个按钮,以便在不知道确切行数的情况下选择接下来的50行?
我的意思是表中的行数可能会增加。好吧,我会清楚地解释一下:我正在使用php mysql html开发一个web应用程序作为我的文档管理系统项目。一切都已完成,但在检索文件时我的意思是可能有数千个文件。
我的信息表中的所有文档都在主页中一次检索,这看起来不太好。所以我想添加页面,以便在第一页中只放置最新的50个文档,接下来的50个是第二个,依此类推。
但是为什么我每次都知道确切的行数,而且每次添加新文档时我都无法更改代码...我认为numrows可能没有用...
请帮帮我......
答案 0 :(得分:0)
使用php& amp;搜索分页MySQL的。这对你的问题可能会很方便。
要限制mysql查询以获取50行,请使用LIMIT
关键字。你可能需要找到&存储最后一行id(第50行),以便您可以在下一页继续第51行到第100行。
发布您对代码所做的工作。请参考whathaveyoutried [dot] com
答案 1 :(得分:0)
您正在寻找的内容称为分页,实现简单分页的最简单方法是在SQL查询中使用LIMIT x , y
。
你真的不需要你拥有的总行数,只需要两个数字:
假设你要查询前50个元素,你应该在查询LIMIT 0,50
的末尾插入,之后你需要存储你已经查询过50个元素的事实,所以下次将限制更改为LIMIT 50,50
时(从元素编号50开始并查询以下50个元素)。
订单取决于插入条目时您所做的字段。通常,您可以更新表格并添加字段created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
,然后只使用ORDER BY created
,因为从现在开始,您的条目会存储创建它们的确切时间,以便查找最新的表格(如果你有一个AUTO_INCREMENT 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非常有用,所以我建议你检查一下(是示例的来源)。
希望这对你有所帮助,抱歉,由于我没有你的代码,所以我不能为你提供更好的例子。
答案 2 :(得分:0)
从另一篇帖子https://stackoverflow.com/a/2616715/6257039查看此示例,您可以通过id或者查询中的creation_date desc制作和开始