Heim >Backend-Entwicklung >PHP-Tutorial > 从数据库中读出的$x, $y, $z为何不能生成图形呢

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

WBOY
WBOYOriginal
2016-06-13 13:06:38943Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn