所以下面的代码是我用来尝试使用 pchart 生成图形的代码。我已经能够生成一些图表。目前的图表看起来像这样:http://befoz.netau.net/charts.php当它应该看起来像http://befoz.netau.net/chart2.php第二个图表是基于我手动的值进入。我想要做的是从 mysql 数据库中检索数据而无需手动输入数据,以便动态生成图表。
这是我的代码。我不确定是查询还是不正确的数组导致图表不生成响应。
<?php
/* CAT:Bar Chart */
/* pChart library inclusions */
include("pchart/class/pData.class.php");
include("pchart/class/pDraw.class.php");
include("pchart/class/pImage.class.php");
/* Create and populate the pData object */
$myData = new pData();
$myData->addPoints(array($Yes,$Result));
$myData->addPoints(array($No,$Result));
$myData->addPoints(array($Undecided,$Result));
$myData->setAxisName(0,"Number of Responses");
$myData->addPoints(array("Yes","No","Undecided"),"Types of Responses");
$myData->setSerieDescription("Types of Responses","Types of Responses");
$myData->setAbscissa("Types of Responses");
$myData->setAbscissaName("Types of Responses");
/* Connect to the MySQL database */
$db = mysql_connect("host", "user", "pass");
mysql_select_db("thedatabase",$db);
/* Build the query that will returns the data to graph */
$Requete = "SELECT `Do you have an interest in Green IT` FROM `replies`";
$Result = mysql_query($Requete,$db);
$Yes=""; $No=""; $Undecided="";
while($row = mysql_fetch_array($Result))
{
/* Push the results of the query in an array */
$Yes[] = $row["Yes"];
$No[] = $row["No"];
$Undecided[] = $row["Undecided"];
}
/* Create the pChart object */
$myPicture = new pImage(500,500,$myData);
$myPicture->drawGradientArea(0,0,500,500,DIRECTION_VERTICAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>100));
$myPicture->drawGradientArea(0,0,500,500,DIRECTION_HORIZONTAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>20));
$myPicture->setFontProperties(array("FontName"=>"pchart/fonts/pf_arma_five.ttf","FontSize"=>6));
/* Draw the chart scale */
$myPicture->setGraphArea(100,30,480,480);
$myPicture->drawScale(array("CycleBackground"=>TRUE,"DrawSubTicks"=>TRUE,"GridR"=>0,"GridG"=>0,"GridB"=>0,"GridAlpha"=>10,"Pos"=>SCALE_POS_TOPBOTTOM));
/* Turn on shadow computing */
$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));
/* Create the per bar palette */
$Palette = array("0"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
"1"=>array("R"=>224,"G"=>100,"B"=>46,"Alpha"=>100),
"2"=>array("R"=>224,"G"=>214,"B"=>46,"Alpha"=>100),
"3"=>array("R"=>46,"G"=>151,"B"=>224,"Alpha"=>100),
"4"=>array("R"=>176,"G"=>46,"B"=>224,"Alpha"=>100),
"5"=>array("R"=>224,"G"=>46,"B"=>117,"Alpha"=>100),
"6"=>array("R"=>92,"G"=>224,"B"=>46,"Alpha"=>100),
"7"=>array("R"=>224,"G"=>176,"B"=>46,"Alpha"=>100));
/* Draw the chart */
$myPicture->drawBarChart(array("DisplayPos"=>LABEL_POS_INSIDE,"DisplayValues"=>TRUE,"Rounded"=>TRUE,"Surrounding"=>30,"OverrideColors"=>$Palette));
/* Write the legend */
$myPicture->drawLegend(570,215,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));
/* Render the picture (choose the best way) */
$myPicture->autoOutput("pictures/example.drawBarChart.palette.png");
?>
所以我的结构在 php my admin 中看起来像这样
ROWS Do you have an interest in Green IT
9 No
3 Undecided
16 Yes
CREATE TABLE `replies` (
`ID` INTEGER NOT NULL AUTO_INCREMENT,
`Do you have an interest in Green IT` VARCHAR(50),
`Do you think Green IT is a good a thing` VARCHAR(50),
`Would you welcome Green IT if it helped the environment` VARCHAR(255),
`Would you welcome Green IT if you saved money` VARCHAR(255),
`Incentive for welcoming Green IT` VARCHAR(50),
`Is UEL doing enough to implement Green IT` VARCHAR(255),
`Do you like Green IT Modules` VARCHAR(50),
`Your rough monthly cost on travel to UEL` VARCHAR(255),
`Additional comments` VARCHAR(50),
`Should there be more green modules at UEL` VARCHAR(255),
`What Year of Study Are you In` VARCHAR(50),
`If you did not fill in the quesionnaire, why not` VARCHAR(255),
PRIMARY KEY (`ID`)
) ENGINE=myisam DEFAULT CHARSET=utf8;
我哪里错了?
谢谢