如何在php中使用我的sql进行分页

时间:2017-11-24 07:11:52

标签: php mysql pagination

我有一个由以前的开发人员开发的应用程序。现在,在该应用程序中有17000个条目,应用程序变得很慢。它非常慢,需要10分钟来加载所有数据。

我认为这是因为他们一次获得所有数据只能通过JS进行分页。

我想更改它并获得第一页的前10个条目,当用户点击Next页面或Page 2按钮时,应该触发查询以获取下一个10个数据。

当前应用程序查询:

SELECT bm.bank_name,b.bank_ifsc,e.emp_id,e.emp_code,e.first_name,e.middle_name,e.last_name,e.active_status as emp_status,e.account_no 
FROM tblemployee e 
Left Join tblbank_mst bm on bm.bank_id=e.fk_bank_id 
Left Join tblbank b on b.bank_ifsc_id=e.fk_bank_ifsc_id 
WHERE e.del_status=0 
AND e.role_id=4 
AND e.is_admin=0 
ORDER BY first_name

1 个答案:

答案 0 :(得分:0)

您需要执行几个步骤

第1步: 需要设置page如果它不在URL中,则设置为1,这意味着第1页意味着第一组记录

第2步: 没有。每页记录数,例如每页5条记录

第3步: 动态计算开始记录#例如     第1页:从1开始     第2页:从6开始     第3页:从11开始

然后附加查询

SELECT bm.bank_name,b.bank_ifsc,e.emp_id,e.emp_code,e.first_name,e.middle_name,e.last_name,e.active_status as emp_status,e.account_no 
FROM tblemployee e 
Left Join tblbank_mst bm on bm.bank_id=e.fk_bank_id 
Left Join tblbank b on b.bank_ifsc_id=e.fk_bank_ifsc_id 
WHERE e.del_status=0 
AND e.role_id=4 
AND e.is_admin=0 
ORDER BY first_name
LIMIT $starting, $pagination

它会打印

first page : LIMIT 1,5 
second page : LIMIT 6,5
third page : LIMIT 11,5

等等。

在底部区域,您需要设置像

这样的导航
  • 第一
  • 回到
  • 下一步
  • 最后

您需要根据当前页面设置页面否。