un semplice motore di ricerca in asp
capita spesso di dover creare un semplice motore di ricerca.
le soluzioni possono essere molteplici, questa è quella un po' "ruspante" che per un po' ho adottato io e che sicuramente può tornare utile.
poniamo che la form di ricerca sia una cosa semplicissima tipo questa
vediamo ora la pagina che riceverà la chiamata
-
strCerca = Request.QueryString("s")
e ricordiamoci di chiudere tutto il codice che segue all'interno dell'if seguente
-
If strCerca<>"" then
-
'codice da inserire
-
Else
-
response.write("inserire almeno un termine di ricerca")
-
End If
quindi andiamo a sostituire gli apici, per evitare che diano problemi nella query sql e splittiamo la stringa, in modo da poter riportare i risultati ricerca per le singole parole
-
strCerca = replace(strCerca,"/'/g","''")
-
arrCerca = Split(strCerca)
e ora vediamo la costruzione della query Sql con delle like.
sostanzialmente andiamo a fare un ciclo sull'array inserendo per ogni termine cercato la seguente richiesta:
trova qualsiasi risultato che contenga ciascun termine cercato in almeno uno tra i campi fldName1, fldName2 e fldName3 (il numero dei campi può essere aumentato o diminuito a piacere aggiungendo OR alla stringa)
-
sql = "SELECT * FROM dbName.tblName WHERE "
-
-
For i = LBound(arrCerca) To UBound(arrCerca)
-
If arrCerca(i)<>"" Then
-
If i> 0 Then _
-
sql = sql & " AND "
-
-
sql = sql & "(tblName.fldName1 like '%" & arrCerca(i) &"%' OR tblName.fldName2 like '%" & arrCerca(i) &"%' OR tblName.fldName3 like '%"& arrCerca(i) &"%')"
-
-
End If
-
Next
spero di aver scritto tutto correttamente

Commenta