8 my $id = $cgi->param('id');
10 my $dbh = ccbs::db_connect();
12 my $player = $dbh->selectrow_hashref('SELECT * FROM players NATURAL JOIN countries NATURAL LEFT JOIN clubs WHERE player=?', undef, $id);
13 my $bestsongs = ccbs::db_fetch_all($dbh, 'SELECT song,title,score,tournament,tournamentname FROM ( SELECT DISTINCT ON (song) song,score,tournament FROM scores WHERE player=? AND score IS NOT NULL ORDER BY song,score DESC ) t1 NATURAL JOIN songs NATURAL JOIN tournaments ORDER BY score DESC LIMIT 10', $id);
15 my ($countries, $clubs);
16 unless ($ccbs::ccbs_noadmin) {
17 $countries = ccbs::db_fetch_all($dbh, 'SELECT * FROM countries ORDER BY countrycode');
18 $clubs = ccbs::db_fetch_all($dbh, 'SELECT * FROM clubs ORDER BY clubcode');
21 # Fetch all scores and count a bit
24 my $last_song = undef;
26 my $scores = ccbs::db_fetch_all($dbh, 'SELECT song,title,score FROM scores NATURAL JOIN songs WHERE player=? ORDER BY title,score DESC', $id);
27 for my $score (@$scores) {
28 my $song = $score->{'song'};
30 if (!defined($last_song) || $song != $last_song) {
31 push @allsongs, { song => $song, title => $score->{'title'}, scores => [] };
34 push @{$allsongs[$#allsongs]->{'scores'}}, $score->{'score'};
36 my $this_columns = scalar @{$allsongs[$#allsongs]->{'scores'}};
37 $columns = $this_columns if ($this_columns > $columns);
43 ccbs::process_template('player.tmpl', $player->{'nick'}, {
45 bestsongs => $bestsongs,
46 allsongs => \@allsongs,
48 countries => $countries,