我正在我的列表页面中使用搜索项目实现分页(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>
可能是什么问题?
答案 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,
));