Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Ordering return from fetchrow_hashref

by slayer (Initiate)
on Mar 04, 2004 at 16:44 UTC ( #333927=note: print w/replies, xml ) Need Help??

in reply to Ordering return from fetchrow_hashref

Yes, you were quite right, the reason I needed this order is that I will be displaying the data directly from the database to autogenerate a status report, with little user intervention and with the column order derived from the sql query.

Also, other people are ultimately relying on me to return an array of hash references, so using array ref and converting would be messier.

The solution you suggested worked perfectly, I've implemented the following routine and it works exactly as it should:

sub read_from_db { my %params = @_; my $dbh = $params{-dbh} || ""; my $query = $params{-query} || ""; my @results_array; if ($dbh =~ /DBI/) { my $sth = $dbh->prepare($query); my $result = $sth->execute(); while (my $row = $sth->fetchrow_hashref()) { tie my(%hash_to_return), "Tie::IxHash"; map({$hash_to_return{$_}=$row->{$_}} @{$sth->{NAME}}); my $ref = \%hash_to_return; push(@results_array, $ref); } $sth->finish; } return @results_array; }

So thanks...!

Replies are listed 'Best First'.
Re^2: Ordering return from fetchrow_hashref
by fiasudeen (Initiate) on Sep 02, 2014 at 19:31 UTC
    The other way to do is ... we can get all the column headers using $sth->{NAME} array. get the values using $sth->fetchrow_array() - This would give column values in an order. @{$sth->{NAME}} - This would give column names in an order.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://333927]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2019-12-14 11:22 GMT
Find Nodes?
    Voting Booth?

    No recent polls found