findsql有无分页的问题

#1 蓝ッLánY

假设TestID = 4
       没有分页-------->
$requestlogCls = spClass('lib_requestlog');
$TestID = $this -> spArgs('TestID');         
$sqlCall = 'select *,count(IP) AS total from trequestlog WHERE RequestPath LIKE "/askiq/?TestID='.$TestID.'%" OR RequestPath LIKE "/askiq/main_index_TestID_'.$TestID.'%"  GROUP BY IP';
$result = $this -> result = $requestlogCls -> findSql($sqlCall);


     有分页-———— >
        $requestlogCls = spClass('lib_requestlog');
        $TestID = $this -> spArgs('TestID');         
        $sqlCall = 'select *,count(IP) AS total from trequestlog WHERE RequestPath LIKE "/askiq/?TestID='.$TestID.'%" OR RequestPath LIKE "/askiq   /main_index_TestID_'.$TestID.'%"  GROUP BY IP';
        $result = $this -> result = $requestlogCls -> spPager($this->spArgs('page', 1), 10) -> findSql($sqlCall);
        $this-> pager = $requestlogCls -> spPager() -> getPager() ; //开启分页

问:为什么有分页的时候,全部数据都查询出来了,TestID=4的条件不生效??


2014-11-21 09:35:14

#2 jake

请稍微看看手册 http://www.speedphp.com/thread-3771-1-1.html

1. 首先注意手册里面说的限制。
2. 检查你的输出SQL,因为分页不会改变where条件的,条件不生效,有可能是你的代码在什么地方去掉了条件或者忽略了。
3. 如果一直困惑检查不出来你的代码问题所在,可以使用手册里面说的扩大使用范围的方法,该方法更简单有效,更容易查到错误所在。

2014-11-21 10:34:30

#3 蓝ッLánY

jake 发表于 2014-11-21 10:34
请稍微看看手册 http://www.speedphp.com/thread-3771-1-1.html

1. 首先注意手册里面说的限制。
先忽视3的说法,手册说不能limit,我没有用limit,是不是groud  by都不能用??代码就是以上那几行,只是第一段没有分页,第二段有分页,两段用于区别

2014-11-21 12:03:37

#4 蓝ッLánY

蓝ッLánY 发表于 2014-11-21 12:03
先忽视3的说法,手册说不能limit,我没有用limit,是不是groud  by都不能用??代码就是以上那几行,只是 ...
打错,是group  by

2014-11-21 12:05:59