@fasb;
Tablonun aynısını oluşturdum. Yeni kodlar ve ekran görüntüsü aşağıda.
<?php
mysql_connect('localhost','pma','pmapass');
mysql_select_db('test');
$sorgu = mysql_query("SELECT nufus FROM ilce");
$y = array();
while($sonuc = mysql_fetch_array($sorgu)){
$y[] = ($sonuc['nufus']/5)+100;
}
$img = imagecreatetruecolor(600, 300);
$green = imagecolorallocate($img, 110, 255, 0);
$red = imagecolorallocate($img, 255, 0, 0);
imagefill($img, 0, 0, $green);
$x = 50;
for($i=0, $j=1;$i<=8, $j<=9;$i++,$j++)
{
imagefilledarc($img, $x*$j, $y[$i], 15, 15, 0, 0, $red, IMG_ARC_PIE);
imageline($img, $x*$j, $y[$i], $x*($j+1), $y[$i+1], $red);
}
imagefilledarc($img, $x*(count($y)), $y[count($y)-1], 15, 15, 0, 0, $red, IMG_ARC_PIE);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
Şimdi kodları satır satır açıklayayım.
mysql_connect('localhost','pma','pmapass');
mysql_select_db('test');
$sorgu = mysql_query("SELECT nufus FROM ilce");
$y = array();
while($sonuc = mysql_fetch_array($sorgu)){
$y[] = ($sonuc['nufus']/5)+100;
}Yukarıda yazdığım bu satırlarda veritabanına bağlandım. ilce tablosunun nufus sütununu çektim ve $y isminde bir değişkene atadım. Rakamları direk koordinat olarak kullandığım için 100, 600 gibi büyük rakamlar yerine bu rakamların beşte birini aldım. ve grafiğimiz tavana yapışmasın diye her değere +100 ekledim ki tavandan yüz piksel aşağı ötelesin. Sonuç olarak rakamlar kümesi $y değişkenine gelmiş oldu.
$img = imagecreatetruecolor(600, 300);
$green = imagecolorallocate($img, 110, 255, 0);
$red = imagecolorallocate($img, 255, 0, 0);
imagefill($img, 0, 0, $green);
$x = 50;
Bu satırlarda ise $img değişkenine, imagecreatetruecolor fonksiyonu ile oluşturduğum resmi atadım. 600px genişliğinde 300px yüksekliğinde bir resim oluşturdum. Daha sonra $green değişkenine imagecolorallocate ile $img değişkeninde oluşturdum resmi yeşile boyadığımı söyledim. $red isimli değişkene ise kırmızı rengini attım. imagefill ile de resmi yeşile boyadım. Daha sonra soldan 50px ile başlayalım diye $x değişkeni oluşturup 50px atadım..
Gelelim for döngüsüne
for($i=0, $j=1;$i<=8, $j<=9;$i++,$j++)
{
imagefilledarc($img, $x*$j, $y[$i], 15, 15, 0, 0, $red, IMG_ARC_PIE);
imageline($img, $x*$j, $y[$i], $x*($j+1), $y[$i+1], $red);
}
imagefilledarc($img, $x*(count($y)), $y[count($y)-1], 15, 15, 0, 0, $red, IMG_ARC_PIE);Döngüde $i ve $j isimli iki değişken var, imagefilledarc ile noktaları, imageline ile çizgileri oluşturdum. Döngüden sonra kullandığım imagefiledarc ise en sondaki noktayı oluşturmak içindi.
Son olarak
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);kodları ile ise, sayfanın bir img/png türünde png resmi olduğunu belirten başlığı header fonksiyonu ile gönderdim. imagepng fonksiyonu ile $img değişkenindeki veriler ile resmi oluşturdum. Ekrana resmi bastıktan sonra imagedestroy ile bellekten resmi sildim.
Varsa aklınıza takılan soru, sorabilirsiniz.