[ASK]CGridView Totalin Data

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? :D

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… B)

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

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

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… :P

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

hahahhaha…

iya q lupa kalo pake sum data yg muncul cuma 1…

http://www.yiiframework.com/wiki/157/keeping-a-running-total-in-a-cgridview/

mantap nih gan… Ane nambah ilmu juga… thank share linknya

saya masih newby nich di YII ,mohon bantuan untuk model

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