「本」テーブルの上位 10 本が表示される円グラフを作成しようとしています (私は図書館システムを行っています)。
トップ 10 の各本が借り手によってループで何回貸し出されたかを計算し、円グラフを形成するために各本のパーセンテージと度数も計算しましたが、方法を見つけることができないようです実際に円グラフ自体を形成します。
また、パーセンテージを配列にして、2 番目のループで各本の弧を表示する方法もわかりません。
これまでの私のコードは次のとおりです。
<?php
//execute the SQL query and return records
$result = mysql_query("SELECT book_id, COUNT(*) FROM loan GROUP BY book_id ASC ORDER BY count(*) DESC LIMIT 10");
$book_count = mysql_num_rows($result);
$step = 1;
while($row = mysql_fetch_array($result))
{
$total = $total + $row['COUNT(*)'];
$i[$step] = $row['COUNT(*)'];
$step++;
}
$pie = imagecreate(500,500);
$white = imagecolorallocate($pie,255,255,255);
imagefill($pie,0,0,$white);
$font = imageloadfont('calibri.gdf');
$black = imagecolorallocate($pie,0,0,0); //This is for the labeling also
$angle = 0;
for($index = 1; $index <= 10; $index++)
{
$percentage = (($i[$index]/$total)*100);
#$degrees = (($percentage/100)*360);
}
for ($index2=0, $count=count($percentage); $index2<$count; $index2++)
{
#$percentage = (($i[$index]/$total)*100);
$degrees = (($percentage[$index]/100)*360);
$color = imagecolorallocate($pie,mt_rand(20,255),mt_rand(20,255),mt_rand(20,255));
imagefilledarc($pie,100,100,125,125,$angle,($angle+$degrees),$color,IMG_ARC_PIE);
imagefilledrectangle($pie,250,(50+(25*($index2+1))),275,(75+(25*($index2+1))),$color);
imagestring($pie,$font,276,(55+(25*($index2+1))),$percentage[$index2]." %",$black);
$angle+=$degrees;
}
header("Content-type: image/png");
imagepng($pie);
imagedestroy($pie);
#echo "<br>";
#echo 'The sum is: ' . $total;
?>