这是我想要使用MySQL数据创建折线图的代码。任何帮助将被赞赏,好像我给阵列一个fiext值,它生成图表,但现在使用查询,它没有显示任何东西。
<?php
function linegraph ($arrval)
{
$arrval;
$height = 260;
$width = 330;
$im = imagecreate($width,$height);
$white = imagecolorallocate($im,255,255,255);
$gray = imagecolorallocate($im,200,200,200);
$black = imagecolorallocate($im,0,0,0);
$red = imagecolorallocate($im,255,0,0);
$x = 21;
$y = 11;
$num = 0;
while(($x <= $width) && ($y <= $height))
{
$prcnt = ((($height-50)-($y-1))/($height-60))*100;
imageline($im, 21, $y, $width-10, $y, $gray);
imageline($im, $x, 11, $x, $height-50, $gray);
imagestring($im,2,1,$y-10,$prcnt.'%',$red);
imagestring($im,2,$x-3,$height-40,$num,$red);
$x += 30;
$y += 20;
$num++;
}
$tx = 20;
$ty = 210;
foreach($arrval as $values)
{
$cx = $tx + 30;
$cy = 200-$values;
imageline($im,$tx,$ty,$cx,$cy,$red);
imagestring($im,5,$cx-3,$cy-13,'.',$red);
$ty = $cy;
$tx = $cx;
}
imageline($im, 20, 11, 20, $height-50, $black);
imageline($im, 20, $height-49, $width-10, $height-49, $black);
return imagepng($im);
}
include ('/dbcon.php');
$dataarray = array();
$qr = "SELECT * FROM indicator WHERE indicatorid = '83';";
$res = mysql_query($qr);
if($res)
{
$Data = mysql_fetch_array($res);
$topicid = $Data['topicid'];
$indid = 83;
$couid = 8;
$year = 2011-10;
for ($count=0; $count < 10; $count ++)
{
$qrdb = "SELECT value FROM databank WHERE topicid = '$topicid', indicatorid = '$indid', countryid = '$couid', yearid = '$year';";
$result = mysql_query($result);
if ($result)
{
$DDB = mysql_fetch_array($result);
$dataarray[$count] = $DDB['value'];
} else {
echo "Data cannot be fetched form Databank";
}
}
}
else
{
echo "MYSQL query Fail";
}
linegraph($dataarray);
?>
答案 0 :(得分:0)
您的查询中有错误
SELECT value FROM databank
WHERE topicid = '$topicid',
indicatorid = '$indid',
countryid = '$couid',
yearid = '$year';"
当你制作,
时,你应该使用update
,select
当你必须使用logical connectors时
尝试这样:
SELECT value FROM databank
WHERE topicid = '$topicid' and
indicatorid = '$indid' and
countryid = '$couid'and
yearid = '$year';"