我怎么在使用spPager()->getPager()得不到分页数据
发布于:2022-01-17 09:50:54
#1 verderer
使用findsql的时候
spPager($this->spArgs($myPage, 1), 6)->findsql($sql)
有办法得到数据没?
2010-08-03 13:12:17
#2 jake
你上面的代码需要注意两个地方:
1. $myPage是什么?$this->spArgs是接收GET/POST值,第一个参数是参数名称,所以这个地方可以参考一下其他人写的代码,比如说$this->spArgs('page', 1);
2. 使用 $g->spPager()->findSql();的时候,该SQL语句内不能用limit,否则不能获取分页数据。
2010-08-03 13:27:08
#3 verderer
//url中的页码参数
$myPage = 'p';
//model层
$UserSpecialGoodsTable = spClass('IBW_UserSpecialGoods');
$sql=" ";
$this->UserSpecialGoodsList = $UserSpecialGoodsTable->spPager($this->spArgs($myPage, 1), 6)->findSql($sql);
我是这样写的,这个能出东西分页数据没?
2010-08-03 13:31:40
#4 jake
代码应该没问题
2010-08-03 13:33:50
#5 verderer
//翻页
$pager = $UserSpecialGoodsTable->spPager()->getPager();
dump($pager);
后面这里就出不来了,我确定表里面有数据的,而且能出来,但是分页数据就一个都没有
2010-08-03 13:37:30
#6 jake
你上面的分页每页面记录数量是6,而如果查询到的记录总数量小于或者等于6,所以没有分页。
也就是不够两页所以不分页。
这也可以拿来判断分页页码是否显示。
2010-08-03 13:41:54
#7 verderer
我试试,果然如此,没有超过一页的时候,的确没有数据,但是这个时候总数没办法得到来着吗,你还有办法得到总数没?
2010-08-03 13:49:55
#8 jake
用findCount或者是select count(*)
2010-08-03 13:53:26
#9 jake
还有个方法更简单,如果false == $pager 那么总数就是 count(结果)
2010-08-03 13:54:23
#10 verderer
OK,谢谢,问题解决了
2010-08-03 14:02:08