Bro teman kawan,
ane ada class
<?php
class TotalColumn extends CGridColumn {
private $_total = 0;
public function renderDataCellContent($row, $data)
{
$this->_total += $data->total;
echo 'Rp. '.$this->_total;
}
}
?>
tapi kalo paging nya tiap halaman totalnya berubah2.
misalnya ada 20 record di database,
terus jadi dua halaman di cgridview,
halaman pertama kolom totalnya nilainya record 1 ditambah sampai record 10,
dihalaman kedua record 11 ditambah sampe halaman ke 20
yang saya mau kolom total ini langsung total record 1-20 bukan perhalaman / pagination. ada yang bisa atau tau gak ya?
solusi sementara ane jadi ga pake pagination di halaman ini supaya totalnya akurat. kalo pake pagination malah jadi cuma ada total per page aja
klo aq bikin query lagi buat ngitung total. terus simpen di bawah Grid
[grid]
-[data1]-[data2]-[data3]
[endGrid]
echo "total"
gitu lah kira2…
ada contoh code yang uda dipake blm kak?
contoh code… hmmm paling gini aja sih…
foreach ($data as row) { // asumsi $data merupakan array yang sesuai dengan yang di grid.
$total = $total + $row->namaField;
}
echo $total
kali aja master yang di bawah saya tau…
atau mungkin kyk gini
foreach ($data as row) { // asumsi $data merupakan array yang sesuai dengan yang di grid.
$total[] = $row->namaField;
}
echo array_sum($total)
hehehe makasih ya,
tp blm bisyaaa hehehe nungguin ada orang baik nih hehehe
Angela88
(Angela Arrie)
May 8, 2012, 9:36am
7
kalo totalnya dikueri aja gimana???
langsung sum dari databasenya…
ga tau efektif ato ga nya c…
kalo totalnya dikueri aja gimana???
langsung sum dari databasenya…
ga tau efektif ato ga nya c…
tapi gue malah butuhnya tiap gue search data di admin.php itu muncul kan recordnya. nah yang gue butuh total di view nya ri, dan ga masuk database hehehe
Angela88
(Angela Arrie)
May 9, 2012, 6:44am
9
maksudnya pas di search itu totalnya juga dikueri…
misal :
$criteria->select ='--.*, sum(total) as grandtotal';
trus di viewnya
array(
'name'=>'total',
'footer'=>'$data->grandtotal',
),
tapi yg jelas q lom pernah pake c…
jd ga tau jg…
hehehhehhe…
maksudnya pas di search itu totalnya juga dikueri…
misal :
$criteria->select ='--.*, sum(total) as grandtotal';
trus di viewnya
array(
'name'=>'total',
'footer'=>'$data->grandtotal',
),
tapi yg jelas q lom pernah pake c…
jd ga tau jg…
hehehhehhe…
error hehehe
muncul tulisam
CDbCommand failed to execute the SQL statement: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ', sum(total) as grandtotal FROM tbl_reim
t
WHERE id_emp=‘25’ LIMIT 21474836’ at line 1. The SQL statement executed was: SELECT --. , sum(total) as grandtotal FROM tbl_reim
t
WHERE id_emp=:ycp0 LIMIT 2147483647
kalo diubah jadi gini
$criteria->select ='*, sum(total) as grandtotal';
datanya cuma 1 hehehehe gak ke select smua
Angela88
(Angela Arrie)
May 10, 2012, 9:23am
11
hahahhaha…
iya q lupa kalo pake sum data yg muncul cuma 1…
kokoadi
(Kokoadi)
May 10, 2012, 2:44pm
12
ahmadroni
(Ahmadroni)
May 24, 2012, 5:29am
13
mantap nih gan… Ane nambah ilmu juga… thank share linknya
rakimunroy
(Rakimunroy17)
June 20, 2012, 9:35am
14
saya masih newby nich di YII ,mohon bantuan untuk model
newyiier
(Hannanhaniifa)
June 20, 2012, 3:38pm
15
tapi ini agak bingung siih sesuai maksud atau engk…
data tetep diambil dr db kn trus ditampilin di grid view nyah ??
gini bukan ?? tapi agak ribet niih cos jd 3x tulis ulang sql, pertama buat sum total, kedua buat paging, trus buat data nyah dehh,
$sum=Yii::app()->db->createCommand
("SELECT sum(amount) as total FROM tbl_ ") ->queryScalar( );
//bisa langsung di echo disini
// echo "TOTAL : $sum";
$count=Yii::app()->db->createCommand
("SELECT count(amount) FROM tbl_ ") ->queryScalar( );
$sql=" SELECT date, nama, amount FROM tbl_ ";
$dataProvider=new CSqlDataProvider ($sql, array(
'totalItemCount'=>$count,
'sort'=>array(
'attributes'=>array(
'date',
),
),
'db'=>Yii::app()->db,
'pagination'=>array(
'pageSize'=>30,
),
));
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,//->getData(),
'columns'=>array(
)));
kaga tw kaya gini bukan yg dimaksud, maaf klo salah,
klo bener kaya gini maksud nyah yh kurang lebihlah yh, agak gak hemat juga siihh, mungkin ada saran lain hehehehhh