Salve a tutti
come da titolo avrei un piccolo problema x un form di ricerca

premetto che ho già fatto una ricerca ed infatti ho trovato uno script interessante che ho utilizzato in parte..
il fatto è che funziona solo in parte mi spiego meglio

ho un db con una tabella con cui gestisco un parco macchine usate.
i campi della tabella sono :
idUsato
Marca
Modello
Immatricolazione
Cilindrata
Tipologia
Alimentazione
Prezzo
foto
Km
Accessori
Infomail

ora la mia ricerca è una ricerca x diversi campi quali
Marca
Modello
Tipologia
Alimentazione
Prezzo

ecco sul prezzo ho problemi x le altre no posto il cod che uso
Codice PHP:
<%

Const 
adOpenKeyset 1
Const adLockReadOnly 1
dim marca
marca
=trim(request.QueryString("marca"))
dim modello
modello
=trim(request.QueryString("modello"))
dim tipologia
tipologia
=trim(request.QueryString("tipologia"))
dim alimentazione
alimentazione
=trim(request.QueryString("alimentazione"))
dim prezzo1
prezzo1
=trim(request.QueryString("prezzo1"))
dim prezzo2
prezzo2
=trim(request.QueryString("prezzo2"))

%>

<%
function 
eliminasp(p)
dim out 
out
=replace(p," ","")
eliminasp out
end 
function

function 
fixQuotes(theString)
if 
inStr(theString,"'") > 0 then theString replace(theString,"'","''")
fixQuotes theString
end 
function

function 
buildSQL(theField,theValue,theOperator)
  
tmpSQL ""
  
if inStr(theValue," ") > 0 then
    theValue 
split(theValue)
    for 
0 to uBound(theValue)
      
tmpSQL tmpSQL theField " LIKE '%" theValue(i) & "%' "
        
if uBound(TheValuethen tmpSQL tmpSQL theOperator " "
    
next
  
else
    
tmpSQL theField " LIKE '%" eliminasp(TheValue) & "%' "
  
end if
  
buildSQL tmpSQL
end 
function

eseguiRicerca false
scriptPage 
request.serverVariables("PATH_INFO")


sql "SELECT * FROM TabUsato WHERE "

if len(marca) > 0 then
  eseguiRicerca 
true
  sql 
sql "(" buildSQL("marca",fixQuotes(marca),"AND") & ") "
end if


if 
len(modello) > 0 then
  eseguiRicerca 
true
    
if len(marca) = 0 then
          sql 
sql "(" buildSQL("modello",fixQuotes(modello),"OR") & ") "
    
else
        
sql sql "And (" buildSQL("modello",fixQuotes(modello),"OR") & ") "
    
end if
end if

if 
len(tipologia) > 0 then
'tipologia=eliminasp(tipologia)
  eseguiRicerca = true
    if len(marca) = 0 And len(modello) = 0 then
          sql = sql & "(" & buildSQL("tipologia",fixQuotes(tipologia),"OR") & ") "
    else
        sql = sql & "And (" & buildSQL("tipologia",fixQuotes(tipologia),"OR") & ") "
    end if
end if


if len(alimentazione) > 0 then
  eseguiRicerca = true
    if len(marca) = 0 And len(modello) = 0 And len(tipologia) = 0 then
          sql = sql & "(" & buildSQL("alimentazione",fixQuotes(alimentazione),"OR") & ") "
    else
        sql = sql & "And (" & buildSQL("alimentazione",fixQuotes(alimentazione),"OR") & ") "
    end if
end if


if len(prezzo1) > 0 then
  eseguiRicerca = true
    if len(marca) = 0 And len(modello) = 0 And len(tipologia) = 0  And len(alimentazione) = 0 then
        if len(prezzo2) = 0 then
              '
prezzo2="100000"
            
sql "SELECT * FROM TabUsato WHERE TabUsato.prezzo >"prezzo1 &" "
            'sql = "SELECT * FROM Qmax "
        
        else
            sql = "SELECT * FROM TabUsato WHERE TabUsato.prezzo >="& prezzo1 &" And  TabUsato.prezzo<="& prezzo2 &""
        end if
    
        
    end if
end if



if eseguiRicerca then


Creo il RECORD SET che contiene tutti i dati selezionati dal Data base
Set rs 
Server.CreateObject("ADODB.RecordSet")
rs.Open SQLconnadOpenKeyset,adLockReadOnly


' Eseguo la paginazione del record set suddividendo i risultati trovati in pagine e selezionando solo la pagina richiesta

PageNumber = 1

if not isnull(request("PageNumber")) and request("PageNumber") <> "" then
 PageNumber = cint(request("PageNumber"))
 RsIn = (Pagenumber - 1)  * 6
 rs.move(RsIn)
end if

numrec=6


Eseguo un ciclo su tutti i dati del Recod set e creo il documento XML in output con i vari TAG

Do while not rs.eof and numrec 0
                                                     

Response
.Write "<nome id=""" rs("Marca") & """/><descrizione h=""" rs("Modello") &""">" rs("Immatricolazione") & "</descrizione><foto h=""" rs("Cilindrata") &""">"rs("urlImgNews") &"</foto><foto1 h=""" rs("Alimentazione") &""">"rs("Tipologia") &"</foto1><prezzo>"rs("prezzo") &"</prezzo><info k=""" rs("Km") &""" h=""" rs("InfoMail") &""">"rs("Accessori") &"</info>"




rs.movenext
numrec 
numrec -1
Loop


'aggiungo al documento XML un nodo che contiene il numero totale di record 
response.write "<totrec>"& rs.recordcount &"</totrec>"


rs.close
set rs=nothing
Conn.Close
set conn=nothing

else
  response.write "E' 
necessario specificare almeno una chiave"
end if

%> 
il problema sul prezzo è che posso fare una ricerca su di un range di prezzi nn sul prezzo specifico quindi passo alla pag asp oltre a tutti gli altri valori, qualora ci siano, e due prezzi che rappresentano le estremità del mio range ...ad es 0 e 5000

il problema è che adesso comè lo script se scelgo ad es alfaromeo ,nel form di ricerca, e la fascia di prezzo da 0 -5000 mi funziona come un or cioè mi fa vedere tutte le alfaromeo anche quello con il prezzo > di 500
anzi direi che nn funge bene

mentre se ad es scelgo una marca ed un modello o magari una tipologia mi funge bene

ovviamente avrò fatto qualche errore data la mia nubbiaggine in materia

grazie x il Vs tempo