1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
package MasterWebInterface::Database::Games;
use strict;
use warnings;
use Exporter 'import';
our @EXPORT = qw| dbGameListGet dbGetGameDesc |;
# Get list of games
sub dbGameListGet
{
my $s = shift;
my %o = (
page => 1,
results => 50,
sort => '',
@_
);
# search criteria
my %where = (
$o{search} ? ('lower(label) LIKE lower(?)' => "%$o{search}%") : (),
!$o{all} ? ( 'num_total > ?' => 0) : (),
);
# what to get from db
my @select = (
qw| label gamename num_direct num_total |
);
# sort order
my $order = sprintf {
label => 'label %s',
gamename => 'gamename %s',
num_total => 'num_total %s',
}->{ $o{sort}||'num_total' }, $o{reverse} ? 'DESC' : 'ASC';
# query
my($r, $np) = $s->dbPage(
\%o,
q| SELECT !s FROM gameinfo !W ORDER BY !s|,
join(', ', @select),
\%where,
$order
);
# page numbering
my $p = $s->dbAll(
q| SELECT COUNT(*) AS num FROM gameinfo !W|,
\%where,
)->[0]{num};
return wantarray ? ($r, $np, $p) : $r;
}
# Get description for a game by gamename
sub dbGetGameDesc
{
my ($self, $gn) = @_;
return $self->dbAll("SELECT label FROM gameinfo WHERE gamename = ?", $gn)->[0]{label};
}
1;
|