搜索不起作用的分页

时间:2016-05-05 06:38:56

标签: php yii

我正在我的列表页面中使用搜索项目实现分页(yii1):当我搜索分页总项目5时(我的意思是链接,如1 2 3 4 5)和搜索的罚款。

当我在分页链接中单击第二页时,总项目增加到12(我的意思是链接,如1 2 3 4 5 ... 10 11 12)。

我的查询与like运算符一起工作正常。我不知道它在哪里 变了..

这是我的控制器

 if((isset($_POST['searchtext'])) && (!empty($_POST['searchtext']))){

       $sql ="select * from table1 where name LIKE '\'%'.$_POST['searchtext'].'%\'" ; 

       $sql_count = "select count(*) from table1 LIKE '\'%'.$_POST['searchtext'].'%\'" ;

       $count=Yii::app()->db->createCommand($sql_count)->queryScalar();


   }else{

          $sql = "select * from table1";
          $sql_count = "select * from table1";
         $count=Yii::app()->db->createCommand($sql_count)->queryScalar();
  }
   $dataProvider=new CSqlDataProvider($sql, array(
                'totalItemCount'=>$count,
                'sort'=>array(
                 'attributes'=>array(
                 'id','userid','user_email',
                                    ),
                            ),
            'pagination'=>array(
            'pageSize'=>9,
            ),
    ));
         $this->render('listallview',array(
            'dataProvider'=>$dataProvider,


    ));

我的观点

        <ul class="list ">
          <?php

          $this->widget('bootstrap.widgets.TbListView', array(
            'dataProvider'=>$dataProvider,
            'itemView'=>'_view',

            ));

          ?>
       </ul>

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

如果您要使用分页功能,则必须将 totalItemCount 属性配置为行的总数(不分页)。

试试你的控制器:

if((isset($_POST['searchtext'])) && (!empty($_POST['searchtext']))){

   $sql ="select * from table1 where name LIKE '\'%'.$_POST['searchtext'].'%\'" ; 

   //$sql_count = "select count(*) from table1 LIKE '\'%'.$_POST['searchtext'].'%\'" ;

   //$count=Yii::app()->db->createCommand($sql_count)->queryScalar();


   }else{

      $sql = "select * from table1";
     //$sql_count = "select * from table1";
     //$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
     }

     $count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM table1')->queryScalar();

     $dataProvider=new CSqlDataProvider($sql, array(
            'totalItemCount'=>$count,
            'sort'=>array(
             'attributes'=>array(
             'id','userid','user_email',
                                ),
                        ),
        'pagination'=>array(
        'pageSize'=>9,
        ),
));
     $this->render('listallview',array(
        'dataProvider'=>$dataProvider,


));