X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=top100.pl;h=ccd681be7080a2e006b3e5168c9c6252aef4de74;hb=30ff54d1d68e41a17bd8a7ff57e4104021e52ff5;hp=27219e0e570e995057c7b6ec795433c59f3db7c0;hpb=64df4f268381089651b2067a1c09d22004c4f04b;p=ndwebbie.git diff --git a/top100.pl b/top100.pl index 27219e0..ccd681b 100644 --- a/top100.pl +++ b/top100.pl @@ -18,12 +18,14 @@ #**************************************************************************/ use strict; +use warnings FATAL => 'all'; $ND::TEMPLATE->param(TITLE => 'Top100 '); our $BODY; our $DBH; our $LOG; +my $error = ''; $BODY->param(isHC => isHC()); @@ -31,7 +33,7 @@ $BODY->param(isHC => isHC()); die "You don't have access" unless isMember(); my $offset = 0; -if (param('offset') =~ /^(\d+)$/){ +if (defined param('offset') && param('offset') =~ /^(\d+)$/){ $offset = $1; } $BODY->param(Offset => $offset); @@ -39,7 +41,7 @@ $BODY->param(PrevOffset => $offset - 100); $BODY->param(NextOffset => $offset + 100); my $order = 'scorerank'; -if (param('order') =~ /^(scorerank|sizerank|valuerank|xprank|hit_us)$/){ +if (defined param('order') && param('order') =~ /^(scorerank|sizerank|valuerank|xprank|hit_us)$/){ $order = $1; } $BODY->param(Order => $order); @@ -50,25 +52,21 @@ my $extra_columns = ''; if (isHC()){ $extra_columns = ",planet_status,hit_us, alliance,relationship,nick"; } -my $query = $DBH->prepare(qq{SELECT id,coords(x,y,z), ruler, planet,race, +my $query = $DBH->prepare(qq{SELECT coords(x,y,z),((ruler || ' OF ') || planet) as planet,race, size, score, value, xp, sizerank, scorerank, valuerank, xprank - $extra_columns FROM current_planet_stats ORDER BY $order LIMIT 100 OFFSET $offset}); -$query->execute; + $extra_columns FROM current_planet_stats ORDER BY $order LIMIT 100 OFFSET ?}); +$query->execute($offset) or $error .= p($DBH->errstr); my @planets; -while (my ($id,$coords,$ruler,$planet,$race,$size,$score,$value,$xp,$sizerank,$scorerank,$valuerank,$xprank - ,$planet_status,$hit_us,$alliance,$relationship,$nick) = $query->fetchrow){ - my %planet = (Coords => $coords, Planet => "$ruler OF $planet", Race => $race, Size => "$size ($sizerank)" - , Score => "$score ($scorerank)", Value => "$value ($valuerank)", XP => "$xp ($xprank)"); +my $i = 0; +while (my $planet = $query->fetchrow_hashref){ if (isHC){ - $planet{HitUs} = $hit_us; - $planet{Alliance} = "$alliance ($relationship)"; - $planet{Nick} = "$nick ($planet_status)"; - $planet{PlanetStatus} = $planet_status; - $planet{Relationship} = $relationship; - $planet{isHC} = 1; + $planet->{isHC} = 1; } - push @planets,\%planet; + $i++; + $planet->{ODD} = $i % 2; + push @planets,$planet; } $BODY->param(Planets => \@planets); +$BODY->param(Error => $error); 1;