>  기사  >  백엔드 개발  >  从数据库中读出的$x, $y, $z为何不能生成图形呢

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

WBOY
WBOY원래의
2016-06-13 10:57:23826검색

从数据库中读出的$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 头吗?你怎么说没有呢?

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.