Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    motore di ricerca su più campi

    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?

  2. #2
    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

  3. #3
    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"

    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
    ... se ti può essere utile...
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  4. #4
    ...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!

  5. #5
    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!

  6. #6
    che casino no su può aggiungere a change="%'and titolo like'%" una cosa del genere? change="%'and titolo and ingredienti like'%"

  7. #7
    Originariamente inviato da Shagrat
    aggiungi una condizione al Where una cosa tipo

    codice:
    where condizione che hai già OR ingredienti like '%......%'
    e io che ho detto?
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  8. #8
    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!

  9. #9
    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

  10. #10
    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!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.