diff --git a/bin/clientstats.pl b/bin/clientstats.pl index 0f7ae20..b94fa16 100644 --- a/bin/clientstats.pl +++ b/bin/clientstats.pl @@ -215,10 +215,14 @@ while (my ($Month, $Key, $Value) = $DBQuery->fetchrow_array) { # output client versions if ($OptVersions) { ### get client versions - # $SQLWhereClause without 'ALL' version + # $SQLWhereClause without 'ALL' version, with client and month set $SQLWhereClause = SQLBuildClause('where',$SQLWherePeriod,$SQLWhereNames, - $ExcludeSums,"version != 'ALL'","client = '$Client'", + $ExcludeSums,"version != 'ALL'", + 'client = ?','month = ?', &SQLSetBounds('default',$LowBound,$UppBound)); + # push client and month to @SQLVersBindNames + my @SQLVersBindNames = @SQLBindNames; + push (@SQLVersBindNames, ($Client, $Month)); # save length of longest client my $ClientMaxLenght = $MaxLength; @@ -227,7 +231,7 @@ while (my ($Month, $Key, $Value) = $DBQuery->fetchrow_array) { # for formatting purposes my ($MaxLength,$MaxValLength) = &GetMaxLength($DBHandle,$Conf{'DBTable'}, 'version','postings',$SQLWhereClause, - '',@SQLBindNames); + '',@SQLVersBindNames); if ($MaxLength) { # add lenght of '- ' $MaxLength += 2; @@ -242,7 +246,7 @@ while (my ($Month, $Key, $Value) = $DBQuery->fetchrow_array) { $SQLWhereClause,$SQLGroupClause, $SQLOrderClause)); # execute query - $DBVersQuery->execute(@SQLBindNames) + $DBVersQuery->execute(@SQLVersBindNames) or &Bleat(2,sprintf("Can't get version data for %s from %s.%s: %s\n", $CaptionPeriod,$Conf{'DBDatabase'},$Conf{'DBTable'}, $DBI::errstr)); diff --git a/doc/ChangeLog b/doc/ChangeLog index a6e7ed9..ef17bfc 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -12,6 +12,7 @@ NewsStats 0.4.0 (unreleased) * DBClnts: set version length to 50. * gatherstats: Truncate overlong clients or versions. * gatherstats: Remove whitespace from client and version. + * Fix version queries. NewsStats 0.3.0 (2025-05-18) * Extract GroupStats (in gatherstats) to subroutine.