E' verametne un rompicapo quel codice ... l'errore non e' facilmente comprensibile anche perche' non e' ben chiaro cosa c'e' nei parametri passati e come e' fatta la base dati.

considero 4 5 linee di codice perche' di piu mi viene mal di testa
Codice PHP:
$Eta trim($_POST['Eta']);
if (
$Eta=="tutte") {
$Eta2 "(t1.Eta = '$Eta' OR t1.Eta != '$Eta') AND";
} elseif (
$Eta=="Da 18 anni in poi" OR $Eta 18) {
$Eta2 "(t1.Eta = 'Da 18 anni in poi' OR t1.Eta = 'tutte' OR t1.Eta LIKE '%21%' OR t1.Eta LIKE '%19%' OR t1.Eta LIKE '%20%' OR t1.Eta LIKE '%22%' OR t1.Eta LIKE '%23%') AND";

ad esempio questa ... $eta e' un numero o una stringa ? sembra che possa essere entrambi a seconda di che ? non sarebbe il caso di farlo diventare sempre e comunque un numero ti semplificherebbe di molto la gestione e la leggibilita'

poi se $eta e' == a tutte
fai questo
Codice PHP:
$Eta2 "(t1.Eta = '$Eta' OR t1.Eta != '$Eta') AND"
ma e' un controllo inutile (e' sempre vero) perche' l'hai fatto ? per errore o per metterci comunque
una stringa valorizzata ma al quel punto non sarebbe uguale metterla vuota ?

secondo me hai reso complicatissima una cosa di per se complessa
Sicuramente si puo scrivere meglio ...


Andrea