Grazie innanzitutto per l'interesse.
ho provato come mi hai suggerito ma il problema persiste.

Riposto interamente il codice perchè nel copia/incolla ne era saltato una parte, Scusatemi.

Codice PHP:
<?php
$currentPage 
$_SERVER["PHP_SELF"];

$maxRows_RSgarage2 2;
$pageNum_RSgarage2 0;
if (isset(
$_GET['pageNum_RSgarage2'])) {
  
$pageNum_RSgarage2 $_GET['pageNum_RSgarage2'];
}
$startRow_RSgarage2 $pageNum_RSgarage2 $maxRows_RSgarage2;

mysql_select_db($database_garage2$garage2);
$query_RSgarage2 "SELECT * FROM regione WHERE provincia LIKE '%$_POST[provincia]%'";
$query_limit_RSgarage2 sprintf("%s LIMIT %d, %d"$query_RSgarage2$startRow_RSgarage2$maxRows_RSgarage2);
$RSgarage2 mysql_query($query_limit_RSgarage2$garage2) or die(mysql_error());
$row_RSgarage2 mysql_fetch_assoc($RSgarage2);

if (isset(
$_GET['totalRows_RSgarage2'])) {
  
$totalRows_RSgarage2 $_GET['totalRows_RSgarage2'];
} else {
  
$all_RSgarage2 mysql_query($query_RSgarage2);
  
$totalRows_RSgarage2 mysql_num_rows($all_RSgarage2);
}
$totalPages_RSgarage2 ceil($totalRows_RSgarage2/$maxRows_RSgarage2)-1;
$queryString_RSgarage2 "";
if (!empty(
$_SERVER['QUERY_STRING'])) {
  
$params explode("&"$_SERVER['QUERY_STRING']);
  
$newParams = array();
  foreach (
$params as $param) {
    if (
stristr($param"pageNum_RSgarage2") == false && 
        
stristr($param"totalRows_RSgarage2") == false) {
      
array_push($newParams$param);
    }
  }
  if (
count($newParams) != 0) {
    
$queryString_RSgarage2 "&" htmlentities(implode("&"$newParams));
  }
}
$queryString_RSgarage2 sprintf("&totalRows_RSgarage2=%d%s"$totalRows_RSgarage2$queryString_RSgarage2);
?>

LINK pagina successiva
[url="<?php printf("]">Pagina avanti[/url]
Pendo sempre dalle vostre labbra ....ops dita.