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

    Motore di Ricerca su più Campi

    Ciao ragazzi,
    sto smanettando con questo codice di un semplice motore di ricerca.

    Funziona bene, ma vorrei provare a fare una cosa.

    Come mi sembra di aver capito la ricerca viene effettuata su 2 campi

    Keywords e Titolo, dico bene?

    Io vorrei ampliare i campi di ricerca.

    Ecco il codice.

    codice:
    if len(search) > 0 then
    
    set conn = server.createobject("adodb.connection")
    conn.open "driver={microsoft access driver (*.mdb)};dbq="&_
    server.mappath("mdb-database/database.mdb")
    
    sql = "select * from tabella_ricerca where"
    
    ArrSearch = Split(search)
    x = 0
    for each Word In ArrSearch
    
    If Not x = UBound(ArrSearch) Then
    sql = sql & " Titolo like '%" & word & "%' and"
    Else
    sql = sql & " Keywords like '%" & word & "%'"
    End If
    
    x = x + 1
    Next
    
    set rs = server.createobject("adodb.recordset")
    rs.open sql, conn, 1, 3
    
    if rs.eof then
    io ho provato a fare questo

    codice:
    if len(search) > 0 then
    
    set conn = server.createobject("adodb.connection")
    conn.open "driver={microsoft access driver (*.mdb)};dbq="&_
    server.mappath("mdb-database/database.mdb")
    
    sql = "select * from tabella_ricerca where"
    
    ArrSearch = Split(search)
    x = 0
    for each Word In ArrSearch
    
    If Not x = UBound(ArrSearch) Then
    sql = sql & " Titolo like '%" & word & "%' and"
    Else
    sqsql = sql & " NUOVO CAMPO '%" & word & "%' and"
    Else
    l = sql & " Keywords like '%" & word & "%'"
    End If
    
    x = x + 1
    Next
    
    set rs = server.createobject("adodb.recordset")
    rs.open sql, conn, 1, 3
    
    if rs.eof then
    Ma mi da errore.

    OVviamente ho aggiunto il campo anche nel database.......
    ___________________________________
    Non si finisce mai di imparare...

  2. #2
    Apparte che hai fatto confusione qua:

    sqsql = sql & " NUOVO CAMPO '%" & word & "%' and"

    Hai scritto 'sqsql', mentre dure righe sotto hai messo solo 'l'.

    Correggi quello e dovrebbe andare.


    Per il tuo problema credo ti basti modificare:

    codice:
    If Not x = UBound(ArrSearch) Then
    sql = sql & " Titolo like '%" & word & "%' and"
    Else
    sql = sql & " Keywords like '%" & word & "%'"
    End If
    con

    codice:
    If Not x = UBound(ArrSearch) Then
    sql = sql & " Titolo like '%" & word & "%' and"
    sql = sql & " ALTROCAMPO like '%" & word & "%' and"
    Else
    sql = sql & " Keywords like '%" & word & "%'"
    End If
    Prova un pò....

  3. #3
    Grazie per la risposta.

    Allora. si avevo sbagliato ad incollare il codice qui sul FOrum.


    Con la tua modifica l'errore non mi viene dato. Ma la ricerca , viene effettuata solo sul Campo Keywords tralasciando i primi 2.

    Inoltre ho notato che posso cercare solo 1 parola. non più di una.

    Nel senso che se cerco ASSOCIAZIONE la trova.
    se scrivo ASSOCIAZIONE AMERIGO non trova niente.
    ___________________________________
    Non si finisce mai di imparare...

  4. #4
    mmmm mi sembra strano.... gestisce ogni singola parola (usando ArrSearch).

    Forse è un problema di AND/OR.

    "Associazione amerigo" esiste da qualche parte nei campi di ricerca?

    Tu vuoi cercare "Associazione AND Amerigo" o "Associazione OR Amerigo"?

  5. #5
    Originariamente inviato da pictor
    mmmm mi sembra strano.... gestisce ogni singola parola (usando ArrSearch).

    Forse è un problema di AND/OR.

    "Associazione amerigo" esiste da qualche parte nei campi di ricerca?

    Tu vuoi cercare "Associazione AND Amerigo" o "Associazione OR Amerigo"?
    Allora.

    se scrivo Associazione Or Amerigo FUNGE

    se scrivo Associazione And Amerigo NON FUNGE

    non è possibile scrivere semplicemente Associazione Amerigo?
    ___________________________________
    Non si finisce mai di imparare...

  6. #6
    Apparte che è curioso che gli operatori funzionino nelle stringhe (scrivi proprio "Associazione OR Amerigo" nel campo di ricerca? :master: )....

    Non hai risposto alla mia domanda.... vuoi che si comporti come se ci fosse l'AND tra le due parole o come se ci fosse l'OR?
    Deve trovare tutte quante le parole oppure basta che trovi una delle due nei campi che hai specificato?

  7. #7
    Originariamente inviato da pictor
    Apparte che è curioso che gli operatori funzionino nelle stringhe (scrivi proprio "Associazione OR Amerigo" nel campo di ricerca? :master: )....

    Non hai risposto alla mia domanda.... vuoi che si comporti come se ci fosse l'AND tra le due parole o come se ci fosse l'OR?
    Deve trovare tutte quante le parole oppure basta che trovi una delle due nei campi che hai specificato?
    Vorrei che trovasse tutte le parole.
    ___________________________________
    Non si finisce mai di imparare...

  8. #8
    Mah.... in teoria dovrebbe già funzionare così, visto che comunque viene usato AND per concatenare le condizioni.

    Prova a stamparti la Query prima che venga eseguita così vediamo dov'è la magagna...

  9. #9
    Originariamente inviato da pictor
    Mah.... in teoria dovrebbe già funzionare così, visto che comunque viene usato AND per concatenare le condizioni.

    Prova a stamparti la Query prima che venga eseguita così vediamo dov'è la magagna...
    COn il Response.Write ?
    Non lo so fare, sono un neofita :rollo:
    ___________________________________
    Non si finisce mai di imparare...

  10. #10
    Originariamente inviato da pictor



    codice:
    If Not x = UBound(ArrSearch) Then
    sql = sql & " Titolo like '%" & word & "%' and"
    sql = sql & " ALTROCAMPO like '%" & word & "%' and"
    Else
    sql = sql & " Keywords like '%" & word & "%'"
    End If
    Non so se può servire, ma ho scoperto che vengono trovati solo il risultati che appartengono al campo KEYWORDS.
    ___________________________________
    Non si finisce mai di imparare...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.