簡體   English   中英

yii分頁搜索不起作用

[英]yii pagination with searching not working

我正在用搜索項在列表頁面中實現分頁(yii1):當我搜索某項時,分頁總計項5(我的意思是像1 2 3 4 5這樣的鏈接)並且搜索很好。

當我單擊分頁鏈接的第二頁時,項目總數增加到12(我的意思是鏈接,例如1 2 3 4 5 ... 10 11 12)。

我的查詢與類似運算符正常工作。 我不知道它在哪里改變。

這是在我的控制器中

 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>

可能是什么問題呢?

如果要使用分頁功能,則必須將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,


));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM