in reply to PERL CGI Newbie Question
fruiture and Foxcub are absolutely correct that you wish to do the sort by specifying an 'ORDER BY' clause in the SQL. Pushing the sort into the SQL is far more efficient than trying to do this in Perl. However, in the interest of showing you how to do this in Perl, I have to start by pointing out that you do not have a sortable data structure. What you want is some type of array of arrays or hashes that you can sort. Also, it looks like your nested while loops may have a logic error. Here's one way to approach this:
$dbh->dbcmd($SQL); $dbh->dbsqlexec; my @fields = qw( Id Status StatusDate Severity Priority ProjectId SubS +ystem Process Name EnteredBy DateEntered Contact Closed DateClosed ClosedReason Summary ); my (@results,@data); while ($dbh->dbhresults != NO_MORE_RESULTS and @data = $dbh->dbnextrow +) { my %results; @results{ @fields } = @data; push @results => \%results; } @results = sort { $a->{Name} cmp $b->{Name} } @results;
You now have an array of hash references sorted by 'Name'. See perldoc perlreftut for more information on using references.
Cheers,
Ovid
New address of my CGI Course.
Silence is Evil (feel free to copy and distribute widely - note copyright text)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: PERL CGI Newbie Question
by Tanalis (Curate) on Dec 13, 2002 at 22:01 UTC | |
by cosmicsoup (Beadle) on Dec 13, 2002 at 22:05 UTC |