2016-05-05 15 views
0

Ich implementiere Paginierung (yii1) in meiner Liste Seite mit Suchbegriffen: wenn ich etwas suche die Paginierung insgesamt Artikel 5 (ich meine Link wie 1 2 3 4 5) und die Suche ist in Ordnung.yii Paginierung mit Suche funktioniert nicht

Wenn ich auf eine zweite Seite im Paginierungslink klicke, erhöht sich die Gesamtzahl der Elemente auf 12 (ich meine Link wie 1 2 3 4 5 ... 10 11 12).

Meine Abfrage funktioniert gut mit ähnlichen Operator. Ich weiß nicht, wo es geändert zu werden ..

Das in meinem Controller ist

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, 


    )); 

Und meine Ansicht

 <ul class="list "> 
      <?php 

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

      )); 

      ?> 
     </ul> 

Was könnte das Problem sein?

Antwort

0

, wenn Sie die Paginierung Funktion nutzen möchten, müssen Sie den totalItemCount Eigenschaft konfigurieren, dass die Gesamtzahl von Zeilen (ohne Paginierung).

Versuchen in Ihrem Controller:

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, 


));