Halo agan2, mohon dibantu. saya baru ni belajar Yii. Mau coba menampilkan data berdasarkan abjad. A-Z, 0-9 begitu.
misalnya : hxxp://localhost/font/index.php?r=font/list&q=a. Gimana ya gan?? mohon dibantu ya… trima kasih ^^
Model :
public function listing()
{
$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM font WHERE fname LIKE "%'.$_GET['q'].'%"')->queryScalar();
$sql='SELECT * FROM font WHERE fname LIKE "%'.$_GET['q'].'%"';
$dataProvider1=new CSqlDataProvider($sql,array(
'totalItemCount'=>$count,
'keyField' => 'fid',
'pagination'=>array(
'pageSize'=>5,
),
));
return $dataProvider1;
}
Controller :
public function actionList()
{
$dataProvider1=Font::model()->listing();
$this->render('list',array('dataProvider'=>$dataProvider1,));
}
public function listing()
{
$criteria = new CDbCriteria;
$criteria->addSearchCondition('fname', $_GET['q']);
$criteria->order = 'fname';
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
lalu di viewnya manfaatkan CListView, karena nanti UI paginasinya juga kan sudah built in dari widgetnya, lebih enak mengaturnya…
View:
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_item', // file render partial untuk tiap item row nya
'sortableAttributes'=>array('fname',),
));
bro Xtremagix, trims banget untuk penjelasannya… udah bisa.Akhirnya saya pake beginian bro :
Controller :
public function actionIndex()
{
if (isset($_GET['q'])) {
if ($_GET['q'] == "9") {
$count = Yii::app()->db->createCommand('SELECT COUNT(*) FROM font WHERE fname RLIKE "^[0-9]"')->queryScalar();
$sql='SELECT * FROM font WHERE fname RLIKE "^[0-9]"';
}
else {
//Select * From Table Where (Fields not like '%[0-9]%') and (Fields not like '%[a-z]%')
$count = Yii::app()->db->createCommand('SELECT COUNT(*) FROM font WHERE fname LIKE "'.$_GET['q'].'%"')->queryScalar();
$sql='SELECT * FROM font WHERE fname LIKE "'.$_GET['q'].'%"';
}
$dataProvider=new CSqlDataProvider($sql,array(
'keyField' => 'fid',
'totalItemCount'=>$count,
'pagination'=>array('pageSize'=>5),
));
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}
else {
$dataProvider=new CActiveDataProvider('Font');
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}
}