salve e tutto il giorno che sto cercando di risolvere un problema ma non ho trovato ancora una soluzione.

forse sarà una cosa facilissima ma non sono riuscito a risolvere questo problema.

allora, sto facendo una ricerca full text in questo modo.

Codice PHP:
class Ricerca
    
{
    var 
$campi;
    var 
$tabella;
    var 
$key;
    var 
$tuple;
     
    function 
Ricerca($key$tabella$campi)
    {
    
$this->key $key;
    if(
$tabella!="")
    
$this->tabella $tabella;
    if(
$campi!="")
    
$this->campi $campi;
    
$this->pulisciStringa();
    }
     
    function 
Query()
    {
     
$datah time();
    
    
$query "SELECT *, MATCH($this->campi) AGAINST('$this->key' IN BOOLEAN MODE) AS attinenza FROM $this->tabella WHERE MATCH($this->campi) AGAINST('$this->key' IN BOOLEAN MODE)  ORDER BY attinenza DESC";
//AND dataFineTimestamp > $datah prende l'annuncio che ancora non e scaduto
     
    
$this->tuple mysql_query($query);
     
    }
     
    function 
pulisciStringa()
    {
    
$keyMod strip_tags($this->key);
    
$keyMod mysql_real_escape_string($keyMod);
    
$this->key trim($keyMod);
    }
     
    function 
ricercaParole()
    {

    
$word explode(' 'trim($this->key));
    
$num count($word);
     
    
$i=0;
    while(
$i$num){
    
$word[$i] = '+'.$word[$i];
    
$i++;
    }
    
$this->key implode(' ',$word);
    }
     
    function 
ricercaFrase()
    {
    
$word $this->key;
    
$word '"'.$word.'"';
    
$this->key $word;
    }
     
    } 
questa ricerca trova tutti gli annunci che hanno attinenza con la parola cercata

ogni annuncio e associato a una categoria tramite id , i nome delle categorie sono in un altra tabella.

vorrei che quando trova gli annunci a sinistra nella pagina escono le categorie degli annunci che ha trovato, per esempio se trova 3 annunci della categoria casa, a fianco esce una volta casa, se trova anche annunci che hanno categoria macchina, esce casa, macchina. ecc.

io avevo pensato di fare la funzione sopra per trovare gli annunci, e poi fare una query uguale per le categorie in questo modo.

Codice PHP:
class categorie
    
{
    var 
$campi;
    var 
$tabella;
    var 
$key;
    var 
$tuple;
     
    function 
categorie($key$tabella$campi)
    {
    
$this->key $key;
    if(
$tabella!="")
    
$this->tabella $tabella;
    if(
$campi!="")
    
$this->campi $campi;
    
$this->pulisciStringacat();
    }
     
    function 
Querycat()
    {
     
$datah time();
    
    
$query "SELECT a.*, b.categoria1,  MATCH($this->campi) AGAINST('$this->key' IN BOOLEAN MODE) AS attinenza FROM annunci a, cat1 b WHERE  MATCH($this->campi) AGAINST('$this->key' IN BOOLEAN MODE) AND a.id_cat1= b.cod_cat1 GROUP BY a.id_cat1 ORDER BY attinenza DESC";
//dataFineTimestamp > $datah prende l'annuncio che ancora non e scaduto
     
    
$this->tuple mysql_query($query);
     
    }
     
    function 
pulisciStringacat()
    {
    
$keyMod strip_tags($this->key);
    
$keyMod mysql_real_escape_string($keyMod);
    
$this->key trim($keyMod);
    }
     
    function 
ricercaParolecat()
    {

    
$word explode(' 'trim($this->key));
    
$num count($word);
     
    
$i=0;
    while(
$i$num){
    
$word[$i] = '+'.$word[$i];
    
$i++;
    }
    
$this->key implode(' ',$word);
    }
     
    function 
ricercaFrasecat()
    {
    
$word $this->key;
    
$word '"'.$word.'"';
    
$this->key $word;
    }
     
    } 
solo che facendo cosi mi dice che non puo eseguire la query

cosa sbaglio ?

se nella query metto questa condizione id_cat1=1 funziona
se metto id_cat1=cod_cat1 dice che non puo eseguire la query

mi potreste aiutare. o magari se ci sono soluzioni migliori ve ne sarei molto grato