From: Ian Jackson Date: Wed, 14 Oct 2009 23:12:57 +0000 (+0100) Subject: routesearch: print results table X-Git-Tag: 5.0^2~39 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=commitdiff_plain;h=9ba8a1cde5d1f2045acf2e30aea821c3ed9d4527;ds=sidebyside routesearch: print results table --- diff --git a/yarrg/web/query_routesearch b/yarrg/web/query_routesearch index af18d36..34fbc22 100644 --- a/yarrg/web/query_routesearch +++ b/yarrg/web/query_routesearch @@ -103,6 +103,23 @@ $emsgokorprint->($emsg) or return; @islandids or return; defined $routeparams->{MaxMass} or defined $routeparams->{MaxVolume} or return; +#---------- prepare island names ---------- + +my $islandname_stmt= $dbh->prepare(<execute($id); + my $row= $islandname_stmt->fetchrow_hashref(); + local $_= $row->{'islandname'}; + s/ Island$//; + return $_, $row->{'archipelago'}; +}; + #---------- compute the results ---------- my @rsargs; @@ -153,7 +170,21 @@ while (<$fh>) { my ($ap,$isles) = (uc $1,$4); next if $results{$ap} && %{$results{$ap}} >= $maxcountea; my $item= { A => $2, P => $3 }; -# my @isles= map { @islenames[$_] }, split / /, @isles; + my (@i, @a); + foreach (split / /, $isles) { + my ($name,$arch)= $isleinfo->($_); + push @i, $name; + push @a, $arch unless @a && $a[-1] eq $arch; + } + $item->{Isles}= [ @i ]; + $item->{Archs}= [ @a ]; + $item->{Start}= $i[0]; + $item->{Finish}= $i[-1]; + $item->{Vias}= [ ]; + my $i; + for ($i=1; $i < @i-1; $i++) { + push @{ $item->{Vias} }, $i[$i]; + } $results{$ap}{$isles}= $item; } @@ -164,17 +195,38 @@ if ($qa->{'debug'}) { % foreach my $ap (qw(A P)) {

ap=<% $ap %>

- +
++++ + + + +% my $datarow=0; % foreach my $isles (sort { -% $results{$ap}{$a}{Values}{$ap} <=> -% $results{$ap}{$b}{Values}{$ap} +% $results{$ap}{$b}{$ap} <=> +% $results{$ap}{$a}{$ap} % } keys %{$results{$ap}}) { % my $item= $results{$ap}{$isles}; - + +% $datarow ^= 1; % } # $isles
Profit +Archipelagoes +Route +
Abs. +Per.lg. + +Start +Via +Finish +
<% $item->{A} |h %> <% $item->{P} |h %> -<% $isles |h %> +<% join ', ', @{ $item->{Archs} } |h %> +<% $item->{Start} |h %>, +<% join ' ', map { $_.',' } @{ $item->{Vias} } |h %> +<% $item->{Finish} |h %>
% } # $ap