Hi all,

I have a problem with the GD::Graph::lines module that I'm hoping someone may be able to help me with. Basically if I put the data straight into an array physically, it works fine but if I pull the data straight from mysql it fails to draw a graph.

I have tried pretty much everything to compare the values and they seem to be exactly the same. I have chomped off newlines, done += 0 to make certain that they are numbers and not strings etc. I have also used Data::Dumper to compare them and have found them to be the same as shown below:

[root@sauron netflow]# /var/www/cgi-bin/testgraphtotal.cgi <code> $VAR1 = [ [ '2003_5_10', '2003_5_5', '2003_5_6', '2003_5_7', '2003_5_8', '2003_5_9' ], [ 1667, 912, 151, 1055, 2043, 2663 ] ]; $VAR1 = [ [ '2003_5_10', '2003_5_5', '2003_5_6', '2003_5_7', '2003_5_8', '2003_5_9' ], [ 1667, 912, 151, 1055, 2043, 2663 ] ];

It is in sheer desperation that I turn to you monks for help. Below is the code (hashed out test bits included), I just hope someone can see what I am sure is a simple mistake that has eluded me for days now.

#!/usr/bin/perl use CGI ':standard'; use GD::Graph::lines; use DBI; use Data::Dumper; #use strict; #######@routers = ('lric015','pzbg001'); #######foreach $router(@routers){ $inint = "1"; $result = "sum(octets)"; @dates = `mysqlshow --password=\'xxxxxxx\' pzbg001`; shift @dates; shift @dates; shift @dates; shift @dates; pop @dates; #@dates = `mysqlshow --password=\'xxxxxxx\' pzbg001`; foreach $date(@dates){ chomp $date; $date =~ s/ //g; $date =~ s/\|//g; $date =~ s/\-//g; $date =~ s/Tables//g; $date =~ s/\+//g; #print $date; #} #$date = "2003_5_9"; # Connect to the database. my $dbh = DBI->connect('DBI:mysql:pzbg001', 'root', 'xxxxxxx', {RaiseE +rror => 1}); $query = "select " . "$result " . "from " . "$date " . "where" . " inintf = '$inint'"; # . "from " . "2003_5_9 " . "where" . " inintf = '$inint'"; #print $query; $sth = $dbh->prepare($query); if (!$sth) { die "Illegal query: $query" }; $sth ->execute; while (my @row = $sth->fetchrow_array) { # print "@row\n"; ####### ####### foreach $row(@row){ chomp $row; $total = sprintf "%0.f", $row/1024/1024; #$total = sprintf "%0.f", $row/1024; $total += 0; push (@rage, $total); #my @row = $sth->fetchrow_array; } } $sth->finish; } #my @test1 = ('2003_5_10', '2003_5_5', '2003_5_6', '2003_5_7', '2003_5 +_8', '2003_5_9'); #my @test2 = (1667, 912, 151, 1055, 2043, 2663); #my @data = ( \@dates, \@test2); #my @data = ( \@test1, \@rage); #my @data = ( \@test1, \@test2); #print Dumper( \@data);# #print "@data\n"; #my @data = (['2003_5_10', '2003_5_5', '2003_5_6', '2003_5_7', '2003_5 +_8', '2003_5_9' ], #[1667, 912, 151, 1055, 2043, 2663]); my $mygraph = GD::Graph::lines->new(600, 300); $mygraph->set( x_label => 'Date', y_label => 'Kb of Traffic', title => 'Traffic for $router ', # Draw datasets in 'solid', 'dashed' and 'dotted-dashed' lines #line_types => [1, 2, 4], line_types => [1], # Set the thickness of line line_width => 2, # Set colors for datasets #dclrs => ['blue', 'green', 'cyan'], #dclrs => ['blue', 'green', 'cyan'], dclrs => ['blue'], ) or warn $mygraph->error; $mygraph->set_legend_font(GD::gdMediumBoldFont); #$mygraph->set_legend('Total', 'Exam 2', 'Exam 3'); $mygraph->set_legend('Total'); my $myimage = $mygraph->plot(\@data) or die $mygraph->error; print "Content-type: image/png\n\n"; print $myimage->png; __END__

Thanks in advance for any help!
Baiul.

Ubi Concordia Ibi Victoria

edited: Sat May 10 19:12:25 2003 by jeffa - added readmore tags


In reply to GD::Graph::lines problem! by Baiul

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.