Salve ragazzi,
uso spesso uno script per impaginare risultati estratti da una query, oggi ho notato un bug, ovvero finchè la query estrae tutti i record, funziona benissimo, se invece , tipo attraverso un form, faccio dei filtri , la query funziona perfettamente , mi mostra solo quelli ricercati, ma sotto i numeri di pagina, tipo metto limite a 20, faccio cerca, mi trova solo 4 risultate io effettivamente vedo solo i quattro risultati, ma numero di pagine invece rimangono quelli di tutti i record, e se si clicca sulla seconda pagine escono record della query generale.

Lo script è questo
Codice PHP:
      
// esecuzione prima query
  
if (! $db->Query("SELECT * FROM annunci WHERE attivo ='0'")) echo $db->Kill();
    
$tot_records $db->RowCount();
// risultati per pagina(secondo parametro di LIMIT)
    
$per_page 20;
// numero totale di pagine
    
$tot_pages ceil($tot_records $per_page);
// pagina corrente
$current_page = (!$_GET['pagi']) ? : (int)$_GET['pagi'];
// primo parametro di LIMIT
$primo =($current_page 1) * $per_page;

      if(
$_POST['ordina']!=''){
                                
$order=$_POST['ordina'];
                                }else{
                                 
$order='DESC';   
                                }
                                 
$price=$_POST['prezzo'];
                                 
$sqlSearch " WHERE 1=1 ";
                                  if(
$_REQUEST['id'] != ""){ 
                             
                              
$sqlSearch .= " AND idCategoria = '{$_REQUEST['id']}'";
                              
                              }
                                if(
$_REQUEST['id_reg'] != ""){ 
                             
                              
$sqlSearch .= " AND id_reg = '{$_REQUEST['id_reg']}'";
                              
                              }
                                if(
$_REQUEST['id_provincia'] != ""){ 
                             
                              
$sqlSearch .= " AND id_provincia = '{$_REQUEST['id_provincia']}'";
                              
                              }
                                if(
$_REQUEST['idComune'] != ""){ 
                             
                              
$sqlSearch .= " AND idComune = '{$_REQUEST['idComune']}'";
                              
                              }
                               if(
$_REQUEST['annuncio'] != ""){ 
                            
                               
$sqlSearch .= " AND (annuncio LIKE '%".$_REQUEST['annuncio']."%')";
                               }
                                
$sqlSearch .= " AND attivo='0' "
                                
$select_from_clauses "SELECT  * FROM annunci ";
                             
                                  if(
$_REQUEST['annuncio'] !='' || $_REQUEST['id']!='' || $_REQUEST['id_reg']!='' || $_REQUEST['id_provincia']!='' || $_REQUEST['idComune']!='' ){

                            
$imp" ORDER BY idAnnuncio {$order} LIMIT $primo$per_page";
                            echo 
$per_page;
                                      
$ricerca =$db2->Query$select_from_clauses.$sqlSearch.$imp);
                              
                              
                              }else{
                                
                             
                                    
$ricerca =$db2->Query($select_from_clauses."  ORDER BY idAnnuncio {$order} LIMIT $primo$per_page");
                              } 
Non riesco a capire dov'è il problema?
Grazie per le risposte