Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii Csqldataprovider仅适用于第一页_Php_Yii_Pagination_Csqldataprovider - Fatal编程技术网

Php Yii Csqldataprovider仅适用于第一页

Php Yii Csqldataprovider仅适用于第一页,php,yii,pagination,csqldataprovider,Php,Yii,Pagination,Csqldataprovider,这对我来说是一个非常奇怪的情况。我有一个CSqldataprovider来处理分页 根据文献和例子,它几乎是正确的。它根据totalitemcount和pagesize计算正确的页数。它完美地显示了第一页,但当我点击下一页链接时,它没有显示任何记录。当我在$this->dataProvider->getData()上执行var_dump时,除第一页外,每隔一页都会显示一个空数组 我的分页代码如下: $result = Yii::app()->db->createCommand($sq

这对我来说是一个非常奇怪的情况。我有一个CSqldataprovider来处理分页

根据文献和例子,它几乎是正确的。它根据totalitemcount和pagesize计算正确的页数。它完美地显示了第一页,但当我点击下一页链接时,它没有显示任何记录。当我在$this->dataProvider->getData()上执行var_dump时,除第一页外,每隔一页都会显示一个空数组

我的分页代码如下:

$result = Yii::app()->db->createCommand($sqlData)->queryAll();
$pages = new YMPagination(count($result));
    $pages->pageSize = Yii::app()->params['itemsPerPage'];
    $this->dataProvider = new CSqlDataProvider($sqlData, array(
        'totalItemCount'=>count($result),
        'sort'=>array(
            'attributes'=>array(
                'recept_id',
            ),
        ),
        'pagination'=>$pages,
    ));
$result = $this->dataProvider->getData();
如果有人知道我做错了什么。。。请告诉我:)

亲切问候,

Pim

首先,两者

$result = Yii::app()->db->createCommand($sqlData)->queryAll();

如果正在执行相同的操作,请移除其中一个

第二,如果需要项目计数,只需编写计数查询:

$count = Yii::app()->db->createCommand('select count(*) from myTable')->queryScalar();
而不是

count($result)

最后,请确保在默认情况下始终使用这些选项,我的意思是不要使用if语句使代码无法到达数据提供程序代码块

我在使用SQL SERVER时也遇到了同样的问题。。看看这篇文章,如果它能解决你的问题。。
count($result)