On Sun, Nov 06, 2005 at 10:30:48AM -0500, Walter Lewis wrote:
> I'm breaking a bit with my preferred style and including the whole 
> thread in the posting because it's been nearly a month since I started 
> the thread.  October seems to be meeting and conference month ... and so 
> here I am on a Sunday morning ...
> 
> Mike Rylander put me on the track of mapping the hashes into an ordered 
> list. 
> 
> The code evolved to:
> 
> if (@ordered_sql_rows) {
>    for (my $i = 0; $i <= $#ordered_sql_rows; $i++) {
>        foreach my $key (keys %{$ordered_sql_rows[$i]}) {
>        print ($key. ": " .$ordered_sql_rows[$i]{$key}. "<br />\n"); }
>    }
> }

Perhaps write it another way:

    my $results = $swish->Execute( $query );
    [...]


    my @swish_results;

    while ( (my $result = $results->NextResult) && $page_size-- ) {
        push @swish_results, $result;
    }

    my @ids = map { $_->Property( 'id' ) } @swish_results;

    my %where = ( id => [EMAIL PROTECTED] );


    my $sql = SQL::Abstract->new;
    my ($stmt, @bind) = $sql->select($table,[EMAIL PROTECTED], \%where);

    my $sth = $dbh->prepare( $stmt );
    $sth->execute( @bind );
    # check errors...


then:

    my $recs = $sth->fetchall_hashref('id');
    my @results = map { $recs->{$_} } @ids;

then pass @results to your view/template for output.

    use Data::Dumper;
    print Dumper [EMAIL PROTECTED];



Maybe better, if you don't trust swish and the db to be in sync:

    my @results = map { $recs->{$_} } grep { exists $recs->{$_} } @ids;

Or whatever should happen when an item is not found.


-- 
Bill Moseley
[EMAIL PROTECTED]

Reply via email to