io ho un motore di ricerca che funziona benissimo ma mi fa la ricerca solo su il campo titolo del mio db
change="%'and titolo like'%"
vorre fare anche la ricerca sul campo ingredienti del db come posso fare?![]()
io ho un motore di ricerca che funziona benissimo ma mi fa la ricerca solo su il campo titolo del mio db
change="%'and titolo like'%"
vorre fare anche la ricerca sul campo ingredienti del db come posso fare?![]()
aggiungi una condizione al Where una cosa tipo
codice:where condizione che hai già OR ingredienti like '%......%'
Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare
www.netpolaris.it
Questa query fa parte di un mio vecchio motore di ricerca (fatto in casa) che poi ho abbandonato per fare la ricerca "a tutto campo", cioè in tutto il record, e non su campi specifici.
I campi da spuntare o meno in un form (per dire se includerli o meno nella ricerca) erano "prodotto", "info2", "descrizione", e l'elenco delle parole era nella variabile "parole"
... se ti può essere utile...codice:prodotto=request.form("prodotto") info2=request.form("info2") descrizione=request.form("descrizione") parole=request("parole") if len(parole) > 0 then 'setto connessione database Set objConn=Server.CreateObject("ADODB.Connection") objConn.ConnectionString=connSR 'apertura connessione database objConn.Open Set rs = Server.CreateObject("ADODB.Recordset") pag = TRIM(Request.QueryString("pag")) 'paginazione If pag="" Then pag = 1 Else pag = CInt(pag) End If sql = "SELECT prodotto, descrizione, info2 FROM prodotti WHERE" ArrSearch = Split(parole) x = 0 for each Word In ArrSearch If Len(prodotto) <> 0 Then sql = sql & " prodotto like '%" & word & "%'" If Not x = UBound(ArrSearch) Then sql = sql & " and" End If If Len(info2) <> 0 Then If Len(prodotto) <> 0 Then sql = sql & " and" sql = sql & " info2 like '%" & word & "%'" If Not x = UBound(ArrSearch) Then sql = sql & " and" End If If Len(descrizione) <> 0 Then If Len(prodotto) <> 0 Or Len(info2) <> 0 Then sql = sql & " and" sql = sql & " descrizione like '%" & word & "%'" If Not x = UBound(ArrSearch) Then sql = sql & " and" End If x = x + 1 Next
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!
...lascia stare la paginazione, naturalmente, ho dimenticato di toglierla.....inoltre ho usato la clausola "AND" ma più tardi avevo visto che era meglio "OR"
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!
Questo era il form, compresi i controlli di convalida dell'input:
codice:<html> <head> <title>Form ricerca per parole chiave</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript"> <!-- function check(){ var test; test="true"; if (test=="true") { if (document.ricerca.parole.value=="") { alert("Devi specificare almeno una parola da cercare!"); test="false"; } } if (test=="true") { if (!(document.ricerca.prodotto.checked) && !(document.ricerca.info2.checked ) && !(document.ricerca.descrizione.checked)){ alert("Devi specificare almeno un campo dove cercare!"); test="false"; } } if (test=="true") { document.ricerca.action="select_keywords.asp"; document.ricerca.submit(); } } //--> </script> </head> <body> <center><table border="0" width="90%"> <tr> <td>Home page</td> <td align="center">Ricerca per parole chiave</td> <td align="right">Aggiungi nuova inserzione</td> </tr> </table> </center> <form name="ricerca" method="post"> <center><table width="80%" border="0"> <tr> <td align="right">Inserisci parole chiave</td> <td align="left"><input type="text" name="parole" size="30" value="<%=parole%>"></td> </tr> <tr> <td colspan="2"></td> </tr> <tr> <td rowspan="3" align="right">Inserisci i campi in cui cercare</td> <td align="left"><input type="checkbox" name="prodotto" value="prodotto"/>prodotto</td> </tr> <tr> <td align="left"><input type="checkbox" name="info2" value="info2"/>altre informazioni</td> </tr> <tr> <td align="left"><input type="checkbox" name="descrizione" value="descrizione"/>descrizione</td> </tr> <tr> <td colspan="2"></td> </tr> <tr> <td align="right"><input type="button" value="Conferma" onclick="javascript: check();"/></td> <td><input type="reset" name="reset" value="Annulla"/></td> </tr> </table></center> </form> </body> </html>![]()
![]()
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!
che casinono su può aggiungere a change="%'and titolo like'%" una cosa del genere? change="%'and titolo and ingredienti like'%"
e io che ho detto?Originariamente inviato da Shagrat
aggiungi una condizione al Where una cosa tipo
codice:where condizione che hai già OR ingredienti like '%......%'
Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare
www.netpolaris.it
Se i campi entro cui fare la ricerca sono costanti e saranno sempre gli stessi, certo che puoi... il mio suggerimento era per lasciare la scelta dei campi all'utente..............
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!
posto lo script così magari capisco meglio e risolvo sto problema![]()
Dim prechiave
Dim tipo
Dim chiave
prechiave=request.querystring("form_chiave")
tipo=request.querystring("tipo")
if tipo="tutte" then
change="%'and titolo like'%"
chiave=replace(chiave,"'","''")
else
chiave=prechiave
end if
sql = "SELECT * FROM cocktail where titolo like '%"&replace(chiave,"'","''")&"%' ORDER BY " & strOrderBy & " DESC;"
RS.Open sql, dcnDB, adOpenKeyset
RS.PageSize = iPageSize
RS.CacheSize = iPageSize
iPageCount = RS.PageCount
così la ricerca la faccio solo per il campo titolo che devo fare per aggiungere il campo ingrediente
grazie![]()
codice:sql = "SELECT * FROM cocktail where titolo like '%"&replace(chiave,"'","''")&"%' OR ingrediente like '%"&replace(chiave,"'","''")&"%' ORDER BY " & strOrderBy & " DESC;"
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!