0

これを機能させるための多くの試みにもかかわらず、私は困惑しています。私は他の多くの投稿で、私はPHPに非常に慣れておらず、広大な機能に慣れておらず、これがほぼ機能するようになっていることを知っていますが、それを実現できないようです。私はすでに1人の非常に親切な人に私のためにそれをばかにしようとしてもらいました[リンク] https://stackoverflow.com/a/13872071/1880796しかし今私はそれを取得するために私のコードのエラーを修正する誰かが必要です仕事。URLの最後に何か問題があると思います。画像を表示してURLを表示しようとすると、すべてが台無しになり、何が間違っているのかわかりません。それはとても混乱しているので、私はすべての数学をダブルとトリプルチェックしましたが、ここに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]。"&a1="。$pC1[1]。"&a2="。$pC1[2]。"&a3="。$pC1[3]。"&a4="。$pC1[4]。"/"

はい、imgタグとphpとechoが必要なことは承知していますが、フォームに投稿できませんでした。

4

1 に答える 1

0

したがって、解決策はたまたま何らかの形の構文エラーでしたが、上記のコードに関する洞察を探している人にとっては...

1) 入力値をハードコーディングしてスクリプトをチェックし、結果を表示します。
2) 呼び出し元の関数から渡されるパラメーターを確認します。

その後、上記のコード サンプルは、php マニュアルにあるものと非常によく似ています。

于 2012-12-14T20:56:32.570 に答える