2016-03-20 15 views
1

私は本当にこの問題に近づく方法に苦労していますので、より多くの経験を積んだ人から何か助けを得るために新しい質問を開くことが必要です。純粋なPHPの例でグラフを作成する

私は純粋なPHPで非常に単純なグラフを作成するには、次の例に取り組んでいますhttp://code.web-max.ca/image_graph.php

問題

私は私がコードで過ごしていた問題をコメントしている、を自分のコードを追加しています大部分は大文字です。

$maxv変数は、私はコピーして、私の編集者にのみ例を貼り付け、それを実行するときしかし、それはそうそこになければならない作業している...ゼロによるエラー分裂につながる0に設定されているときに問題が以下の発生どこかに私のコードで論理的な問題で、私は任意のヘルプははるかに

マイ出力IMG enter image description here

//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 

感謝ヨーヨーを感謝.....私のコードとしてaswellスクリーンショットを添付しています読書のために非常に!

答えて

1

私が気づいたカップルのこと。 $values配列の各要素にコンマを追加しているようです。

$values[] = '"'.$nr.'"'.','; 

これを代わりにこれに変更します。

$values[] = $nr; 

は、その後...私はここ以外分裂をやっているあなたのコード例ではどこでも見ていない、これまでお使いの破行...

echo '$values are fine'. implode(", ", $values); 

次を変更

$column_width = $width/$columns; 

$values配列に値がない場合は、ゼロ除算が必要なのは唯一の時間です。

+0

非常にありがとうございます、私はすぐにあなたに戻ってきます –

+0

ps私はセクションのセクションをデバッグしているので、例の一部だけを追加しました。したがって、セクションはありません。 –

+0

UPDATE:foreachループとimplodeを推奨するように変更して以来、最初の '$ maxv'値echo'edは15になり、正しい方向のステップではありません....しかし、それでもまだすべて0です –

関連する問題