我真的一直在努力解决这个问题,所以我认为这可以保证它能够开启一个新问题,以便从更有经验的人那里获得一些帮助。
我正在使用以下示例在纯PHP http://code.web-max.ca/image_graph.php
中创建一个非常简单的图表问题
我正在添加我的代码我已经在代码中评论了我遇到的问题 主要是在大写字母中。
当$maxv
变量设置为0
导致错误除以零时,问题出现在下面...但是当我将示例复制并粘贴到我的编辑器并运行时,它正在工作,所以我的代码中某处存在逻辑问题,我附上截图以及我的代码.....任何帮助非常感谢
//create array retrieved from DB in code ABOVE and add "" and , to each value
foreach($t1Picks as $key => $nr){
$values[] = '"'.$nr.'"'.',';
}
echo '$values are fine'. implode($values);
echo '<br />';
//values are fine.....go ahead
// Get the total number of columns we are going to plot
$columns = count($values);
echo 'COLUMN COUNT IS FINE'.$columns;
echo '<br />';
//columns count is fine continue
// Get the height and width of the final image
$width = 300;
$height = 200;
// Set the amount of space between each column
$padding = 5;
// Get the width of 1 column
$column_width = $width / $columns;
$column_width = round($column_width, 0);
echo 'COLUMN WIDTH IS FINE'.$column_width;
echo '<br />';
// Generate the image variables
$im = imagecreate($width,$height);
$gray = imagecolorallocate ($im,0xcc,0xcc,0xcc);
$gray_lite = imagecolorallocate ($im,0xee,0xee,0xee);
$gray_dark = imagecolorallocate ($im,0x7f,0x7f,0x7f);
$white = imagecolorallocate ($im,0xff,0xff,0xff);
// Fill in the background of the image
imagefilledrectangle($im,0,0,$width,$height,$white);
$maxv = 0; //I DONT UNDERSTAND THIS
//WHY MAX VAL 0?
// Calculate the maximum value we are going to plot
for($i=0;$i<$columns;$i++)$maxv = max($values[$i],$maxv); //WHY NO BRACE { ON FOR
echo 'MAXV TEST IS'.$maxv; //THE FIRST LOOP IS 9 AND THEN ZEROS
echo'<br />';
// Now plot each column
非常感谢您的阅读!
答案 0 :(得分:1)
我注意到了几件事。看起来您正在为$values
数组中的每个元素添加逗号。
$values[] = '"'.$nr.'"'.',';
我会改为改为。
$values[] = $nr;
然后将您的内爆线更改为此...
echo '$values are fine'. implode(", ", $values);
接下来,我在你的示例代码中看不到你正在进行除法的任何地方,除了这里......
$column_width = $width / $columns;
因此,如果您的$values
数组中没有值,那么唯一一次得到除零错误的分数。