我怎么在使用spPager()->getPager()得不到分页数据

#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