"Enter"a basıp içeriğe geçin

Yii veritabanından veri ile pasta dilim grafik kullanımı

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’);  }
Ekran Görüntüsü - 2015-08-14 09:21:55

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.