Home  >  Article  >  Backend Development  >  从数据库中读出的$x, $y, $z为何不能生成图形呢

从数据库中读出的$x, $y, $z为何不能生成图形呢

WBOY
WBOYOriginal
2016-06-13 10:57:23810browse

从数据库中读出的$x, $y, $z为什么不能生成图形呢

require("../Comm/Conn.php"); //从数据库读取数据部分
  $result = mysqli_query($mysql, "select count(*) as nega from message where attitude=-1");
  $row = mysqli_fetch_assoc($result);
  $x=(int)$row['nega'];
  $result = mysqli_query($mysql, "select count(*) as zero from message where attitude=0");
  $row = mysqli_fetch_assoc($result);
  $y=(int)$row['zero'];
  $result = mysqli_query($mysql, "select count(*) as posi from message where attitude=1");
  $row = mysqli_fetch_assoc($result);
  $z=(int)$row['posi'];
mysqli_free_result($result);
mysqli_close($mysql); 


$total=$x+$y+$z; //生成统计图部分
$height=200;
$width=200;

$y1=$height-intval($x/$total*$height,10); 
$y2=$height-intval($y/$total*$height,10); 
$y3=$height-intval($z/$total*$height,10); 

$im=imagecreatetruecolor($width,$height);
$white=imagecolorallocate($im,255,255,255);
$black=imagecolorallocate($im,0,0,0);
$red=imagecolorallocate($im,255,0,0);
$blue=imagecolorallocate($im,0,0,255);
$green=imagecolorallocate($im,0,255,0);

imagefill($im,0,0,$white);
imagerectangle($im,0,0,$width-1,$height-1,$black);
imagefilledrectangle($im,$width/10,$y1,3*$width/10,$height-2,$red);
imagefilledrectangle($im,4*$width/10,$y2,6*$width/10,$height-2,$blue);
imagefilledrectangle($im,7*$width/10,$y3,9*$width/10,$height-2,$green);

imagestring($im,5,30,180,$x,$white);
imagestring($im,5,90,180,$y,$white);
imagestring($im,5,150,180,$z,$red);

Header('Content-type:image/png');
imagepng($im);
imagedestroy($im);
?>

------解决方案--------------------
输出 $x $y $z看看是什么?还是你的sql有问题?
------解决方案--------------------
Header('Content-type:image/png');
header小写
------解决方案--------------------
如果你的 #1、#2的补充说明是真实的,那么
1、去掉 Conn.php 文件中最后的 ?>
2、确认两个文件均没有 BOM 头
3、确认 $x+$y+$z != 0
------解决方案--------------------
那就比较怪异了,注释掉 header 看看
//Header('Content-type:image/png');
------解决方案--------------------
$s = file_get_contents('http://www.yisee.org/00Home/Messagegraph.php');
print_r(unpack('H*', $s));

得到
Array ( [1] => efbbbf89504e470d0a1a0a0000000d49484452000000c8000000c80802....

这个 efbbbf 不就是 BOM 头吗?你怎么说没有呢?

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn