2012-07-03 118 views
0

这是我的代码,我想使用MySQL中的数据创建线图。任何帮助将不胜感激,如果我给了数组一个fiext值它会生成图表,但现在使用查询它没有显示任何东西。来自MySQL数据的线图

<?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

没有近eno嗯在这个问题的信息能够准确地回答,但它看起来像你可能要考虑使用'mysql_fetch_assoc'而不是'mysql_fetch_array'。其实,你可能不想使用这两个函数中的任何一个,因为它们都被弃用了...... –

回答

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';"