私は少しPERLスクリプトを作成しようとしています(!私は初心者です)PerlのGD ::グラフ無効なデータセット:0(パイ)で
私は例のコードを取って、自分のニーズに合わせてeditet。
したがって、csvファイルからデータを読み込んでhtmlテーブルに配置し、パイを図で表示することです。
テーブルはすでに動作していますが、円グラフだけが私の問題です。私は既に見て、コードの中でダイアグラムの部分で多くの変更を試みましたが、勝つことはできません。誰もが私の最後の必要なヒントを与えることができれば
#!C:\Perl64\bin\perl.exe -w
### Variablendeklarationen und Moduleinbindungen ###
use strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use DBI;
my $DBH = DBI->connect('DBI:CSV:');
my $STH;
use CGI::Carp 'fatalsToBrowser';
### Statement-Vorbereitung ###
$DBH->{'csv_tables'}->{'daten'} = { 'file' => 'daten.csv'}
or die "Konnte Datenbank nicht oeffnen:$!";
$STH = $DBH->prepare("SELECT * FROM daten")
or die "Konnte SQL-Statement nicht ausfuehren:$!";
$STH->execute()
or die "Ausfuehren der Datenbankabfrage nicht moeglich:$!";
print <<HERE_TEXT;
Content-type:text/html
<html>
<head>
<title>Datenanzeige CSV-File</title>
</head>
<body>
<center>
<h1>Folgende Umsatzdaten sind ausgelesen worden:</h1>
<hr>
<table border>
<tr>
<td width="200"><b>Filiale:</b></td>
<td width="100"><b>Leiter:</b></td>
<td width="200"><b>Mitarbeiter:</b></td>
<td width="100"><b>Umsatz:</b></td>
</tr>
HERE_TEXT
my @data;
my @diagarray;
while (@data = $STH->fetchrow_array()) {
my $filiale = $data[0];
my $leiter = $data[1];
my $mitarbeiter = $data[2];
my $umsatz = $data[3];
push (@diagarray, $umsatz);
print qq§<tr>\n<td><b>$filiale</b></td>\n<td>$leiter</td>\n<td>$mitarbeiter</td>\n<td>$umsatz</td>\n</tr>\n§;
}
print ("<br><br>");
use GD::Graph::pie;
my $graph = GD::Graph::pie->new(300, 300);
$graph->set(
title => 'Umsatzverteilung Filialen',
) or die $graph->error;
#my @diagram = (\@data,\@diagarray);
#Debug
#my $diagram;
# foreach $diagram(@diagram)
# {
# print ("$diagram\n");
# }
my $gd = $graph->plot(\@diagarray) or die $graph->error;
my $format = $graph->export_format;
print header("image/$format");
binmode STDOUT;
print $graph->plot(\@diagarray)->$format();
は素晴らしいことだ:
は、ここに私のコードです。 グリーティング
あなたに感謝します!2つのスクリプトで行い、" MainScript "内のimg-Tagに入れました。いつでも私は$ filialeや$ data [0]を使って作業しました...これはもちろん動作しませんでした。 。 – CHN
$ data [0] [$ count] = $ label; $ data [1] [$ count] = $ value; によって余分な配列の必要性を取り除くことができます。 $ count ++;ループ内の –