On Wed, Feb 11, 2004 at 05:08:04AM -0800, LDT wrote: >The question is: how do I create my hash references to push into my loop in the >correct order so that when I loop through my template, it all appears in the correct >column? I've been able to successfully loop through a structure that has fixed >columns and fixed rows, but this one is puzzling me and I don't know where to start.
My approach would be to remodel the data into a fixed format, if there are few enough data that you can get away with holding them in memory twice (which for an HTML page you probably can). Also, while I used to use the named hash variable method that's in the example (%r1, %r2, etc.), these days I tend to use an explicitly anonymous hash because I find it more intuitive. So here's some (untested) code which should do what I think you want: my %data; my %account; my %month; # do database query here while (my $account,$description,$month,$amount)=$sth->fetchrow_array) { $data{$account}{$month}=$amount; $account{$account}=$description; $month{$month}=1; # gives us a list of "active" months } my @months=sort {$a <=> $b} keys %month; # or just my @months=(1..12); if you prefer my @accounts=sort {$a <=> $b} keys %account; my @ol; foreach my $account (@accounts) { my @il; my $total=0; foreach my $month (@months) { # use an empty space if no data are available push @il,{amount => $data{$account}{$month} || ''}; $total+=$data{$account}{$month}; } push @ol,{account => $account, description => $account{$account}, total => $total, month => [EMAIL PROTECTED] } $tmpl->param(accounts => [EMAIL PROTECTED]); which would go with a template something like: <tmpl_loop name=accounts> <tr><td><tmpl_var name=account></td> <td><tmpl_var name=description></td> <tmpl_loop name=month> <td>$<tmpl_var name=amount></td></tr> </tmpl_loop> <td>$<tmpl_var name=total></td></tr> </tmpl_loop> You'd generate the table headers separately (perhaps based on the content of @months), and probably use sprintf() for formatting the numbers, but I think that's the core of what you're after. Hope this helps, Roger ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Html-template-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/html-template-users