scusate ma sinceramente non sapevo cosa scrivere sul titolo
ho questo codice
Codice PHP:
$query ="SELECT  cataloghi.cat_id,cataloghi.pos,cataloghi.titolo,operator.nome,stagione.stag,cataloghi.region,cataloghi.scad "
             
."FROM `cataloghi` LEFT JOIN (operator,stagione) ON (cataloghi.operat=operator.op_id AND cataloghi.stag=stagione.stag_id) "
             
."WHERE  ";
if (!empty(
$stagione)){
                    
$stagione =$stagione."%";
                    
$query .=" stagione.stag LIKE '$stagione' ";
                    
$st="1";}
if (!empty(
$operatore)){
                    
$operatore=$operatore."%";
                    if (
$st=="1"){$query.=" AND ";}
                    
$query .="  operator.nome LIKE '$operatore'  ";
                    
$op="1";
                    }
if (!empty(
$regione)){
                    
$regione="%".$regione."%";
                    
$requery ="SELECT paes_region.id FROM paes_region WHERE nome like '$regione' ";
                    
$id_region=safe_query($requery);
                    
$requery ="SELECT count(id) FROM paes_region WHERE nome like '$regione' ";
                    
$conta=mysql_fetch_array(safe_query($requery));
                    
$conta=$conta[0];
                    if (
$st=="1"||$op=="1"){$query.=" AND ";}
                    
$n="0";
                    while (
$regio=mysql_fetch_array($id_region))
                            {
                        echo 
$regio[0];
                            
$query.=" cataloghi.region LIKE '% $regio[0] %' ";
                            if (
$n<($conta-1)){
                                echo
"n=".$n." conta =".($conta-1)."
"
;
                                
$query.=" OR ";
                                
$n=$n+1;
                                }
                            }
                            

stampando $query il risultato impostando i 3 parametri è:


SELECT cataloghi.cat_id,cataloghi.pos,cataloghi.titolo,op erator.nome,stagione.stag,
cataloghi.region,cataloghi.scad
FROM `cataloghi`
LEFT JOIN (operator,stagione) ON (cataloghi.operat=operator.op_id AND cataloghi.stag=stagione.stag_id)
WHERE stagione.stag LIKE 'est%'
AND operator.nome LIKE 'pippo%'
AND cataloghi.region LIKE '% 151 %'
OR cataloghi.region LIKE '% 7 %'

il problema è che il valore che setto a cataloghi.region potrebbero essere anche tanti e riassumendo la query dovrebbe essere

select * from cataloghi where stagione like XX AND operatore like XX AND regione LIKe(xx OR yy OR zz OR .......)

ora invece mi viene intesa dal sistema come

select * from cataloghi where (stagione like XX AND operatore like XX AND regione LIKE xx) OR yy OR zz OR ...... in questo modo se ci sono tanti campi per region mi vien ecompletamente ignorato il valore di stagione o di operatore

sapete se c'è un modo per risolvere questo inghippo?

grazie