2016-05-05 16 views
0

検索項目を含むリストページにページ分割(yii1)を実装しています。ページングの総項目5(1 2 3 4 5のようなリンクを意味します)と検索の問題を検索します。yii検索が機能しないページ分割

ページネーションリンクで2番目のページをクリックすると、合計アイテムが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> 

..です

を知らないのですか?

答えて

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, 


)); 
関連する問題