Проблема в предложении «group by», с которым не может иметь дело код osCommerce - в файле класса splitResults. Некоторое время боролся с этим, и это была моя первая попытка исправить это:
if (strpos($sql_query, 'group by')) {
$reviews_count_query = tep_db_query("select count(*) as total from (select count(*)" . substr($sql_query, $pos_from) .") as GroupedResult");
} else {
$reviews_count_query = tep_db_query("select count(*) as total " . substr($sql_query, $pos_from, ($pos_to - $pos_from)));
}
//$reviews_count_query = tep_db_query("select count(*) as total " . substr($sql_query, $pos_from, ($pos_to - $pos_from)));
Однако при дальнейшем тестировании это тоже не работает должным образом. Затем я потратил некоторое время на то, чтобы понять, что именно происходит, и обнаружил, что подобный код уже существует в oscommerce на https://github.com/osCommerce/oscommerce2/blob/bda6f6df3e4ab027b72ecfe6a96ac70b6774b312/catalog/admin/stats_customers.php#L40-L45
Здесь вы можете видеть, что класс splitpageresults - это выражение «group by» ... а затем под ним - «исправление» для помещения исправленного количества клиентов в запрос numrows. И этот запрос затем присваивается splitpageresults, чтобы получить «показ результатов x из y».