Codice PHP:
<?php 
// search with more keys
    
function more_keys($str) {
        
$rubrica "3A";
        
$where "SELECT * FROM `annunci` WHERE ((`rubrica` = '".$rubrica."')";
    
// Articoli determinativi etc
        
$eccezioni = array(" il "," lo "," la "," i "," gli "," le "," in "," con "," su "," per "," tra "," fra "," di "," a "," e "," o "," u "," da "," di "," della "," delle "," un "," una "," uno "," piu' "," più "," per "," dai "," ad "," ed "," dello "," al "," allo ");
        
$field = array("`titolo`""`testo`""`tel`");
        
        
$str_temp str_replace$eccezioni" "$str);
        
$pieces explode(chr(32), $str_temp);
        
$len_pieces = (count($pieces)-1);
        
$len_field = (count($field)-1);
        
$where .= " AND (((".$field[0]." like '%".$pieces[0]."%')";
        for (
$i 1$i <= $len_pieces$i++) {
            
$where .= " AND (".$field[0]." like '%".$pieces[$i]."%')";
        }
        
$where .= ") ";
        for (
$k 0$k <= $len_field$k++) {
            
$where .= " OR ((".$field[$k]." like '%".$pieces[0]."%')";
            for (
$l 1$l <= $len_pieces$l++) {
                
$where .= " AND (".$field[$k]." like '%".$pieces[$l]."%')";
            }
        
$where .= ")";
        }
        
$where .= "))";
        print 
'<pre>';
            
print_r($pieces);
        print 
'</pre>';
        echo 
"<hr>";
        
print_r($where);
    return 
$where;
    }
?>
<?php 
if ( $_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists('chiave'$_POST) ){
    
$chiave trim($_POST['chiave']);
    
more_keys($chiave);
} else {
    
$chiave "milano appartamento centro";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    key:

    <input name="chiave" type="text" value="<?= $chiave?>" />
    <input name="Invia" type="submit" value="Invia" />
</form>
Risultato:
codice:
SELECT * FROM `annunci` WHERE ((`rubrica` = '3A') AND (((`titolo` like '%milano%') AND (`titolo` like '%appartamento%') AND (`titolo` like '%centro%')) OR ((`testo` like '%milano%') AND (`testo` like '%appartamento%') AND (`testo` like '%centro%')) OR ((`tel` like '%milano%') AND (`tel` like '%appartamento%') AND (`tel` like '%centro%'))))


non è bellissima come query anzi....
la sintassi è oscena e i risultati discutibili...
esiste il modo di concatenare i tre campi in uno con AS in modo da semplificare la query e poter lavorare su una sorta di punteggio "incidenza" del/dei termini ricercati

cichity74