问题与页面分页的实现有关。
我的应用程序中有一个查询,它加载了表的第一条记录
select * from vendor_requested_categories
where status = 0 ORDER BY document_id ASC Limit 1
结果是
+-------------+---------+--------+------+------------------+
| document_id | T1 | T2 | T3 | vendor_brand_id |
+-------------+---------+--------+------+------------------+
| | | | | |
| 1 | Popcorn | Bucket | NULL | 3000 |
+-------------+---------+--------+------+------------------+
我的问题是:
是否可以知道它是否有下一个记录?
答案 0 :(得分:1)
对于分页创建,您必须知道给定查询(过滤器)的记录数,因此您可以根据限制计算总页数。
因此,您可以在查询之前完成此操作以获取总记录:
select COUNT(*) AS N from vendor_requested_categories where status = 0
然后你可以从页面参数计算偏移量:
$limit = 10;
$offset = ((int)$_GET['page'] * $limit) - $limit;
这是分页查询
select * from vendor_requested_categories where status = 0 ORDER BY document_id ASC Limit $offset, $limit
如果您知道总页数和当前页面,则很容易知道您是否有下一条记录。
答案 1 :(得分:1)
您可以使用count()来查找记录总数。应该是这样的事情:
SELECT document_id, T1, T2, T3, vendor_brand_id, count(*) as total_records
FROM vendor_requested_categories
WHERE status = 0 ORDER BY document_id ASC LIMIT 1
因此,您可以一次加载总记录数和第一条记录,而不是在数据库上进行两次查询。