From 8e8a4b4471d0404ca91004b22c84008ee781dbbb Mon Sep 17 00:00:00 2001 From: hecht Date: Wed, 7 Sep 2011 16:49:48 +0000 Subject: [PATCH] fix the clan cleanup script! --- cronjob/training.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cronjob/training.php b/cronjob/training.php index a3855ec..64e7f6f 100644 --- a/cronjob/training.php +++ b/cronjob/training.php @@ -64,7 +64,7 @@ if ($test == "00" || $_GET['midnight'] == 1) { if ($i == 11) { // Erstmal Arena (auch wenns nix mit Training zu tun hat) // select round(einnahmen*0.5/(1+EXP(2-einnahmen/100000))) from arena where einnahmen > 10000 - + // Kann erstmal bleiben! mysql_query('Update arena set zustand = zustand - 1/4 where mietlasten >= 2 and einnahmen > 0'); mysql_query('Update arena set zustand = 0 where zustand < 0'); // No negatives any more @@ -79,19 +79,21 @@ if ($i == 11) { mysql_query('Update arena set einnahmen = 0'); // Inaktive Clans löschen (Clanräume werden automatisch gelöscht durch Fremdschlüssel) - mysql_query('delete from clan where id NOT IN(SELECT distinct(clan) from user )'); + $sql = 'delete from clan where id NOT IN(SELECT distinct(clan) from user where clan is not null)'; + //echo $sql . '
'; + mysql_query($sql); // Räume die Ticker auf (Massivster Datenmüll!!) mysql_query('DELETE FROM clan_ticker WHERE date < TIMESTAMPADD(day, -7, now())'); mysql_query('DELETE FROM user_ticker WHERE date < TIMESTAMPADD(day, -7, now())'); - + // Benutze Clan items!! - // Folgende SQL-Anweisung ermittelt mit einer kleinen Hilfsfunktion die Summe der Miete und das Geld des Clans + // Folgende SQL-Anweisung ermittelt mit einer kleinen Hilfsfunktion die Summe der Miete und das Geld des Clans $mindestchar = 12; // War vorher 40; $sql = 'SELECT cw.id as clan_train, if(count(ch.id)<'.$mindestchar.','.$mindestchar.',count(ch.id)) * miete as mietkosten, c.id as clan, c.geld as geld from clan_ware cw inner join clan_item ci on cw.item_id = ci.id inner join clan c on cw.clan = c.id inner join user u on u.clan = c.id left join chars ch on ch.clan_train = cw.id and ch.besitzer = u.id group by c.id, cw.id order by c.id'; // SQL-Anweisung, wenn Ungenutzte items nicht beruecksichtigt werden sollen -> 'SELECT ch.clan_train, if(count(ch.id)<40,40,count(ch.id)) * miete as mietkosten, c.id as clan, c.geld as geld from user u inner join clan c on u.clan = c.id inner join chars ch on u.id = ch.besitzer inner join clan_ware cw on cw.clan = c.id inner join clan_item ci on cw.item_id = ci.id and ch.clan_train = cw.id group by c.id, cw.id order by c.id' // echo '
'.$sql.'
'; $clan_kosten = mysql_query($sql); - + $clan_raum_array = array(); while ($row = mysql_fetch_assoc($clan_kosten)){ if($clan_raum_array[$row['clan']] === null){