ma se provassi a fare le cose semplici invece?!

codice:
<?PHP

    $where_clausole = "";
    if ( isset($_POST['nome']) ) {
        $nome = $_POST['nome'];
        $where_clausole .= "AND nome LIKE '%$nome%' ";
    }

    if ( isset($_POST['citta']) ) {
        $citta = $_POST['citta'];
        $where_clausole .= "AND citta LIKE '%$citta%' ";
    }
    
    if ( isset($_POST['eta']) ) {
        $eta = $_POST['eta'];
        $where_clausole .= "AND eta LIKE '%$eta%' ";
    }
    
    $idconnessione = mysql_connect('localhost', 'username', 'password');
    mysql_select_db('dbname');
    
    $query = "
        SELECT *
        FROM pratica
        WHERE id > 0 $where_clausole
    ";
    $idquery = mysql_query($query, $idconnessione)
    
    while ( $row = mysql_fetch_array($idquery, MYSQL_ASSOC) ) {
        // ...
    }
    
?>
ci ho messo, nella clausola WHERE, anche "id > 0" in modo da poterci aggiungere con più facilità il "$where_clausole" costruito...

cmq se non sbaglio difficilmente un motore di ricerca ti fà cercare qualcosa se non specifici niente dato che potrebbero esserci 100 milioni di tuple da cercare...e non sarebbe positivo