X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=ND%2FWeb%2FPages%2FAlliances.pm;h=311adb3c7b726d41d452a7fdfd67dc4d21ce9154;hb=ac65e241f748773959b94d66691ee93019fcae84;hp=f9b830fc1c58a10c0a416a25a36a1e4dddb804dc;hpb=5ddeda70051e4631367577a2d2014889ac84ac60;p=ndwebbie.git diff --git a/ND/Web/Pages/Alliances.pm b/ND/Web/Pages/Alliances.pm index f9b830f..311adb3 100644 --- a/ND/Web/Pages/Alliances.pm +++ b/ND/Web/Pages/Alliances.pm @@ -46,7 +46,7 @@ sub render_body { $DBH->begin_work; if (param('crelationship')){ my $value = escapeHTML(param('relationship')); - if ($DBH->do(q{UPDATE alliances SET relationship = ? WHERE id =?} + if ($DBH->do(q{UPDATE alliances SET relationship = NULLIF(?,'') WHERE id =?} ,undef,$value,$alliance->{id})){ $alliance->{relationship} = $value; log_message $ND::UID,"HC set alliance: $alliance->{id} relationship: $value"; @@ -60,11 +60,11 @@ sub render_body { UPDATE planets SET alliance_id = $2, nick = coalesce($3,nick) WHERE id = $1; }); - while ($coords =~ m/(\d+):(\d+):(\d+)(?:\s+nick=\s*(\S+))?/g){ + while ($coords =~ m/(\d+):(\d+):(\d+)(?:\s+nick=(\S+))?/g){ my ($id) = $DBH->selectrow_array($findplanet,undef,$1,$2,$3) or $ND::ERROR .= p $DBH->errstr; if ($addplanet->execute($id,$alliance->{id},$4)){ my $nick = ''; - $nick = '(nick $4)' if defined $4; + $nick = "(nick $4)" if defined $4; $error .= "

Added planet $1:$2:$3 $nick to this alliance

"; intel_log $ND::UID,$id,"HC Added planet $1:$2:$3 $nick to alliance: $alliance->{id} ($alliance->{name})"; }else{ @@ -78,7 +78,7 @@ sub render_body { $BODY->param(Alliance => $alliance->{name}); $BODY->param(Id => $alliance->{id}); my @relationships; - for my $relationship (" ","Friendly", "NAP", "Hostile"){ + for my $relationship ("","Friendly", "NAP", "Hostile"){ push @relationships,{Rel => $relationship, Selected => defined $alliance->{relationship} && $relationship eq $alliance->{relationship}} } $BODY->param(Relationships => \@relationships); @@ -103,12 +103,12 @@ sub render_body { } $BODY->param(Members => \@members); - my $query = $DBH->prepare(intelquery('o.alliance AS oalliance,coords(o.x,o.y,o.z) AS origin, t.alliance AS talliance,coords(t.x,t.y,t.z) AS target',qq{not ingal AND (t.alliance_id = ? OR t.alliance_id = ?) + my $query = $DBH->prepare(intelquery('o.alliance AS oalliance,coords(o.x,o.y,o.z) AS origin, t.alliance AS talliance,coords(t.x,t.y,t.z) AS target',q{not ingal AND (o.alliance_id = $1 OR t.alliance_id = $1) AND (i.mission = 'Defend' OR i.mission = 'AllyDef') - AND (t.alliance_id != ? OR t.alliance_id IS NULL OR o.alliance_id != ? OR o.alliance_id IS NULL) + AND ((( t.alliance_id != o.alliance_id OR t.alliance_id IS NULL OR o.alliance_id IS NULL))) AND i.sender NOT IN (SELECT planet FROM users u NATURAL JOIN groupmembers gm WHERE gid = 8 AND planet IS NOT NULL) })); - $query->execute($alliance->{id},$alliance->{id},$alliance->{id},$alliance->{id}) or $error .= $DBH->errstr; + $query->execute($alliance->{id}) or $error .= $DBH->errstr; my @intel; $i = 0; @@ -132,7 +132,7 @@ sub render_body { my $query = $DBH->prepare(qq{ SELECT DISTINCT a.id,name,COALESCE(s.score,SUM(p.score)) AS score,COALESCE(s.size,SUM(p.size)) AS size,s.members,count(p.score) AS kmem, COALESCE(SUM(p.score),-1) AS kscore, COALESCE(SUM(p.size),-1) AS ksize, COALESCE(SUM(p.xp),-1) AS kxp,COALESCE(SUM(p.value),-1) AS kvalue, - COALESCE(s.score/LEAST(s.members,60),-1) AS scavg, COALESCE(AVG(p.score)::int,-1) AS kscavg, COALESCE(s.size/s.members,-1) AS siavg, + COALESCE(s.score/s.members,-1) AS scavg, COALESCE(AVG(p.score)::int,-1) AS kscavg, COALESCE(s.size/s.members,-1) AS siavg, COALESCE(AVG(p.size)::int,-1) AS ksiavg, COALESCE(AVG(p.xp)::int,-1) AS kxpavg, COALESCE(AVG(p.value)::int,-1) AS kvalavg FROM alliances a LEFT OUTER JOIN (SELECT * FROM alliance_stats WHERE tick = (SELECT max(tick) FROM alliance_stats)) s ON s.id = a.id