X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=NDWeb%2FPages%2FMemberIntel.pm;fp=NDWeb%2FPages%2FMemberIntel.pm;h=0f585edd2a6cb0961909785fdfcb011b67f0b266;hb=e395d07985706fdef07a2dee96e0f7f03edb5c89;hp=2ec5785ac6f129b5aacefe351e939bc23c13dd2e;hpb=c35e53c7fbb397b42cfe491eedd7bb1d8a075614;p=ndwebbie.git diff --git a/NDWeb/Pages/MemberIntel.pm b/NDWeb/Pages/MemberIntel.pm index 2ec5785..0f585ed 100644 --- a/NDWeb/Pages/MemberIntel.pm +++ b/NDWeb/Pages/MemberIntel.pm @@ -130,7 +130,12 @@ sub render_body { $BODY->param(Defenses => \@defenses); }else{ - my $query = $DBH->prepare(q{SELECT u.uid,u.username,u.attack_points, u.defense_points, n.tick + my $order = "attacks"; + if (defined param('order') && param('order') =~ /^(attacks|defenses|attack_points|defense_points|solo|bad_def)$/){ + $order = $1; + } + + my $query = $DBH->prepare(qq{SELECT u.uid,u.username,u.attack_points, u.defense_points, n.tick ,count(CASE WHEN i.mission = 'Attack' THEN 1 ELSE NULL END) AS attacks ,count(CASE WHEN (i.mission = 'Defend' OR i.mission = 'AllyDef') THEN 1 ELSE NULL END) AS defenses ,count(CASE WHEN i.mission = 'Attack' AND rt.id IS NULL THEN 1 ELSE NULL END) AS solo @@ -146,7 +151,7 @@ sub render_body { LEFT OUTER JOIN raid_claims rc ON rt.id = rc.target AND rc.uid = u.uid WHERE gm.gid = 2 GROUP BY u.uid,u.username,u.attack_points, u.defense_points,n.tick - ORDER BY attacks DESC,defenses DESC, attack_points DESC, defense_points DESC}); + ORDER BY $order DESC}); $query->execute() or $error .= $DBH->errstr; my @members; my $i = 0;