Verilerimizi piechart (pasta dilimli grafik) ile göstermek istediğimizde de kullanılacak yöntemlerden birini aşağıda açıklayacağım. Öncelikle grafik eklentisini google chart adresinden indirip /protected/extension klasörüne çıkartıyoruz. Daha sonra görüntülemek istediğimiz verileri hazırlamak için FonksiyonlarHelper.php dosyama yeni bir fonksiyon daha tanımladım. Bu fonksiyon benim veri kaynağım olacak. Daha sonra giris.php dosyasında görüntülenmesini sağlayacağım.
/protected/helpers/FonksiyonlarHelper.php
public function HastanelereGoreDoktorlar()
{
$command =Yii::app()->db->createCommand()->
select(‘ht.hastane,count(*)’)->
from(‘doktor d’)->
leftjoin(‘hastaneler ht’,’ht.id=d.hastane’)->
group(‘ht.hastane’)->queryAll();
$data=($command);
$veri[0][0]=’Hastane’; $veri[0][1]=’Sayı’;
for ($i=1; $i <count($data)+1; $i++) {
$veri[$i][0]=$data[$i-1][‘hastane’];
$veri[$i][1]=intval($data[$i-1][‘count(*)’]);
}
return $veri;
}
yukarıdaki fonksiyonda veritabanımdan sorguyla aldığım hastaneye göre doktor sayısı verilerinin grafik olarak görüntülenmesini istiyorum. Düzgün bir şekilde görüntülenebilmesi için array olarak bir değere dönüştürüyorum. Aşağıdaki şekilde bir veri sağlamış oldum.
Hastane Sayı
Numune 5
Hacettepe 4
Bu sonucumu piechart data değerine atıyorum. Controller ve view kodlarını aşağıdaki gibi oluşturduktan sonra deneyebiliriz. view kodlarında 3 boyutlu bir görüntü verdik, başlığını ayarladık ve boyutlandırmasını yaptık.
/views/site/giris.php
$htPERerdr=FonksiyonlarHelper::HastanelereGoreDoktorlar();
<?php
$this->widget(‘ext.Hzl.google.HzlVisualizationChart’, array(‘visualization’ => ‘PieChart’,
‘data’ => $htPERerdr,
‘options’ => array( ‘width’ => 450,
‘height’ => 350,
‘title’ => ‘Hastane Başına Doktor Sayısı’,
‘is3D’=>’true’)));
?>Sitecontroller.php
public function actionGiris()
{ $this->render(‘giris’); }
İlk Yorumu Siz Yapın