尽管尝试将其付诸实践的尝试很多,但我很难过。我在许多其他帖子中已经解释过,我对PHP非常陌生并且不熟悉这些巨大的功能,并且知道我几乎已经开始工作,但似乎无法实现。我已经有一个非常有帮助的人尝试为我愚蠢[链接] https://stackoverflow.com/a/13872071/1880796但现在我只需要有人纠正我的代码中的错误,让它工作。我认为在网址的末尾有一些错误,因为当我试图查看图像并查看网址时,所有这些都搞砸了,所以我不知道我做错了什么。我已经对所有数学进行了双重和三重检查,因为它太混乱但是这里是result.php:
<?php
$filename = "Results.txt";
$lines = file($filename);
$q1 = $_POST['q1']; // stores checked button value
$q2 = $_POST['q2'];
$q3 = $_POST['q3'];
$q4 = $_POST['q4'];
$q5 = $_POST['q5'];
$q6 = $_POST['q6'];
$q7 = $_POST['q7'];
$q8 = $_POST['q8'];
$qN = 1; //question number
$newLines = '';
$total = array();
foreach($lines as $line) {
$line = trim($line); //remove excess newlines etc.
$lineArr = explode(',',$line); //split line into array by commas
$index = ${'q'.$qN}-1; //zero based
if (isset($lineArr[$index])){
$lineArr[$index]++; //add to position by one vote.
$total = array_sum($lineArr); //number of clicks
$newLines .= implode(',',$lineArr) . "\r\n"; //newLines contains numbers then also
$qN++;
}
}
//write contents back to file.
file_put_contents($filename, $newLines);
//frequencies for each line without strings
$l[1] = explode(',',$lines[0]);
$l[2] = explode(',',$lines[1]);
$l[3] = explode(',',$lines[2]);
$l[4] = explode(',',$lines[3]);
$l[5] = explode(',',$lines[4]);
$l[6] = explode(',',$lines[5]);
$l[7] = explode(',',$lines[6]);
$l[8] = explode(',',$lines[7]);
//multiply each
$result = array();
$values = array(1,2,3,4,5);
for($i=0;$i<count($l);$i++){
for($j=0;$j<count($values);$j++){
$result[$i+1][$j] = $l[$i+1][$j] * $values[$j];
}
}
//calculate percentages
$p1 = (explode(',',$lines[0]));
$p2 = (explode(',',$lines[1]));
$p3 = (explode(',',$lines[2]));
$p4 = (explode(',',$lines[3]));
$p5 = (explode(',',$lines[4]));
$p6 = (explode(',',$lines[5]));
$p7 = (explode(',',$lines[6]));
$p8 = (explode(',',$lines[7]));
// calculate averages *****For some reason most recent frequency item updated is off by one, possibly bc not up to date yet???? figure out later!!!
$f1avg = round((array_sum($result[1])/($total-1)),2);
$f2avg = round((array_sum($result[2])/($total-1)),2);
$f3avg = round((array_sum($result[3])/($total-1)),2);
$f4avg = round((array_sum($result[4])/($total-1)),2);
$f5avg = round((array_sum($result[5])/($total-1)),2);
$f6avg = round((array_sum($result[6])/($total-1)),2);
$f7avg = round((array_sum($result[7])/($total-1)),2);
$f8avg = round((array_sum($result[8])/($total-1)),2);
//pie chart question 1 information
$p1f0 = round((($p1[0]/($total-1))*360),0);
$p1f1 = round((($p1[1]/($total-1))*360),0);
$p1f2 = round((($p1[2]/($total-1))*360),0);
$p1f3 = round((($p1[3]/($total-1))*360),0);
$p1f4 = round((($p1[4]/($total-1))*360),0);
//_____________$a0________$a1______________$a2___________________$a3__________________________$a4_______________
$pC1 = array(($p1f0),($p1f0+$p1f1),($p1f0+$p1f1+$p1f2),($p1f0+$p1f1+$p1f2+$p1f3),($p1f0+$p1f1+$p1f2+$p1f3+$p1f4));
print_r ($pC1);
这是饼图脚本:
header("Content-type: image/png");
//create pie charts
$image=imagecreatetruecolor(51,51);
//_____________________colors____________________________
$my_colorA=imagecolorallocate($image,51,51,255);
$my_colorB=imagecolorallocate($image,100,150,215);
$my_colorC=imagecolorallocate($image,20,20,151);
$my_colorX=imagecolorallocate($image,216,216,255);
$red = imagecolorallocate($image, 255, 0, 0);
$orange = imagecolorallocate($image, 191, 64, 0);
$dark_yellow = imagecolorallocate($image, 128, 128, 0);
$dark_green = imagecolorallocate($image, 64, 191, 0);
$green = imagecolorallocate($image, 0, 255, 0);
//_______________________________________________________
imagefill($image,0,0,$my_colorX);
//__________________ , center, w , h , st, end, clr , type______
imagefilledarc($image,25,25, 50, 50, 0, $a0, $red, IMG_ARC_PIE);
imagefilledarc($image,25,25, 50, 50, $a0, $a1, $orange, IMG_ARC_PIE);
imagefilledarc($image,25,25, 50, 50, $a1, $a2, $dark_yellow , IMG_ARC_PIE);
imagefilledarc($image,25,25, 50, 50, $a2, $a3, $dark_green, IMG_ARC_PIE);
imagefilledarc($image,25,25, 50, 50, $a3, $a4, $green, IMG_ARC_PIE);
//___________________________________________________________________
imagepng($image);
imagedestroy($image);
我不知道它为什么不起作用但是当我点击查看图片时我得到了这个: PieChart.php A0 = 33&安培; A1 = 66&安培; A2 = 230安培; A3 = 263&安培; A4 = 361 /%3E%3C / TD%3E%3Ctd%20style =
所以是的,我不知道我做错了什么!请帮忙!
哦,最后这就是我在我的HTML中添加的内容。
img src = \“PieChart.php?a0 =”。$ pC1 [0]。“&amp; a1 =”。$ pC1 [1]。 “&安培; A2 =”。$ PC1 [2]。 “&安培; A3 =” $ PC1 [3]。。。 “&安培; A4 =” $ PC1 [4] “/”
是的我知道它需要img标签和php和echo我只是无法在表单中发布。
答案 0 :(得分:0)
所以解决方案恰好是某种形式的语法错误,但对于那些想要了解上述代码的人来说......
1)通过硬编码输入值并查看结果来检查脚本 2)检查从调用函数传递的参数。
之后,上面的代码示例与您在php手册中找到的代码示例非常相似。