Initial checkin
[ndccode.git] / stats / makerank.pl
1 #!/usr/bin/perl 
2
3 # makerank.pl
4 # NDC Code Release 1
5 #
6 # Updates the rank field in the stats database.
7 #
8 #   Copyright (C) 2001 Andreas Ulbrich, Ralf Ertzinger (ndccode@ndc.sh)
9 #
10 #   This program is free software; you can redistribute it and/or modify
11 #   it under the terms of the GNU General Public License as published by
12 #   the Free Software Foundation; either version 2 of the License, or
13 #   (at your option) any later version.
14 #
15 #   This program is distributed in the hope that it will be useful,
16 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
17 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 #   GNU General Public License for more details.
19 #
20 #   You should have received a copy of the GNU General Public License
21 #   along with this program; if not, write to the Free Software
22 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23
24 #use strict;
25 require 5.002;
26 use DBI;
27
28 ### Var def ###
29
30 $database = "stats";
31 $data_source = "DBI:mysql:$database";
32 $username = "";
33 $password = "";
34 $dbh = DBI->connect( $data_source, $username, $password) or die "Can't connect to $data_source\n"; #: $dbh->errstr\n";
35
36
37 $query = $dbh->prepare("SELECT nick FROM PlayerStats WHERE fe_skill > 0 ORDER by fe_skill DESC");
38 $query->execute;
39
40 $rank = 1;
41
42 while ($row_hash = $query->fetchrow_hashref) {
43         $name = $row_hash->{nick};
44         $nick{$name} = $name;
45         $rank{$name} = $rank++;
46 }
47
48 $query->finish;
49
50 foreach $name (%nick) {
51
52   $sql_query_string = "UPDATE PlayerStats SET fe_rank=? WHERE nick=?";
53   $sql_query=$dbh->prepare($sql_query_string);
54   $sql_query->execute($rank{$name},$nick{$name});
55   $sql_query->finish;
56 }
57
58 $dbh->disconnect;
59