[EMAIL PROTECTED] wrote:
> I am trying to build an array that can be used with GD::Graph
> to show the graphical representation of a MySQL query. This module
> only takes in an AoA like this:
>
> @data = ([1,2,3,4],[10,20,30,40]); # @arr[$x vals], [$y vals]
>
> It then takes that array and parses it into a graph like this:
>
> my $image = $plot->plot([EMAIL PROTECTED]);
>
> My SELECT statement correctly returns two columns of data but I'm having
> trouble reading them into an array shaped like the above using the following:
>
> while (@results = $sth->fetchrow_array ())
> {
> $x = $results[0];
> $y = $results[1];
> push (@data,[$x],[$y]);
> }
>
> When I use the above code I get an array that looks like this
>
> @data = [1,10][2,20][3,30][4,40].
>
You need to understand the base concept of what you are building, the
perlreftut docs I mentioned before should be helpful. You should also
read through,
perldoc perldsc
perldoc perllol
They will help you understand.
> How can I get my array to come out correctly?
>
You are really selecting a set of x,y but you need separate lists of all
x's and all y's. So knowing that,
my (@x, @y);
while (my ($x, $y) = $sth->fetchrow_array) {
push @x, $x;
push @y, $y;
}
my $image = $plot->plot( [ [EMAIL PROTECTED], [EMAIL PROTECTED] ] );
Or to condense further,
my $data;
while (my ($x, $y) = $sth->fetchrow_array) {
push @{$data->[0]}, $x;
push @{$data->[1]}, $y;
}
my $image = $plot->plot( $data );
> Thanks, Aaron.
HTH,
http://danconia.org
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>