Risolto!!

Dunque, purtroppo non so spiegare il motivo, però ora funziona.

Praticamente ho "doppiato" gli IF i primi 3 scelgono la query per il COUNT e la mettono in variabile.

L'altro gruppo di 3 IF identico al primo, invece che settare la query in variabile, la esegue direttamente nel momento in cui serve:

Codice PHP:
if (($ricreg == rr) && ($ricprov == rr)){
        
$query mysql_query("SELECT * FROM annunci WHERE cat LIKE '$riccat' LIMIT $primo$per_page");
    }
    else{
if ((
$ricreg != rr) && ($ricprov == rr)){
        
$query mysql_query("SELECT * FROM annunci WHERE cat LIKE '$riccat' AND reg LIKE '$ricreg' LIMIT $primo$per_page");
    }
    else{
if ((
$ricreg != rr) && ($ricprov != rr)){
        
$query mysql_query("SELECT * FROM annunci WHERE cat LIKE '$riccat' AND reg LIKE '$ricreg' AND prov LIKE '$ricprov' LIMIT $primo$per_page");
    }
  }
}
while(
$results mysql_fetch_array($query)) {
echo 

Etc. etc.

Come dice il comico nostrano Palmiro Cangini: "Non lo so...però c'ho ragione...e i fatti MI COSANO!"