Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema ricerca più campi

    Salve Amici,

    ho realizzato un semplice motore di ricerca visualizzabile a questo link:

    http://www.losportagenzia.it/thebank/ricerca.asp

    che sembra funzionare con almeno un campo!
    Ad esempio se nel campo sport inserisco Atletica leggera mi restituisce la prima olimpiade che trova con il primo risultato... fin qui tutto ok!

    Se però al campo sport: atletica leggera, aggiungo che voglio il risultato per l'anno 1996... mi torna lo stesso risultato!
    Se però inserisco solo 1996 mi da il risultato corretto relativo all'olimpiade del 1996!
    Il codice che uso è

    risOlimpiadi.Source = "SELECT * FROM OLY_RISULTATI WHERE OLIMPIADE = '"&Request.QueryString("OLIMPIADE")&"'"
    if Request.QueryString("ATLETA") <> "" then
    risOlimpiadi.Source = risOlimpiadi.Source& "AND ATLETA LIKE '%"&Request.QueryString("ATLETA")&"%'"
    end if
    if Request.QueryString("SPORT") <> "" then
    risOlimpiadi.Source = risOlimpiadi.Source& "AND ID_SPORT LIKE '%"&Request.QueryString("SPORT")&"%' OR DISCIPLINA LIKE '%"&Request.QueryString("SPORT")&"%'"
    end if
    if Request.QueryString("ID_OLY") <> "" then
    risOlimpiadi.Source = risOlimpiadi.Source& "AND ID_OLY LIKE '%"&Request.QueryString("ID_OLY")&"%'"
    end if
    if Request.QueryString("CLASSIFICA") <> "" then
    risOlimpiadi.Source = risOlimpiadi.Source& "AND CLASSIFICA = '%"&Request.QueryString("CLASSIFICA")&"%'"
    end if

    Ma dove sbaglio?
    Digital XP - The new expression of digital art! - http://www.mimanchitu.it

  2. #2
    succede perchè nel modo in cui hai impostato la query un parametro esclude l'altro...
    dovresti modificarla così :


    sql_source = "SELECT * FROM OLY_RISULTATI"


    if Request.QueryString("OLIMPIADE") <> "" then

    sql_source = sql_source & " WHERE OLIMPIADE = '"&Request.QueryString("OLIMPIADE")&"'"

    sw = 1

    end if

    if Request.QueryString("ATLETA") <> "" then

    if sw = 0 then

    sql_source = sql_source & " WHERE ATLETA LIKE '%"&Request.QueryString("ATLETA")&"%'"

    sw = 1
    else

    sql_source = sql_source & "AND ATLETA LIKE '%"&Request.QueryString("ATLETA")&"%'"

    end if

    end if

    ' aggiungi gli altri parametri.....

    'e poi dai l'sql a risOlimpiadi

    risOlimpiadi.Source = sql_source


    ok?
    ...ancora credi a internet? :maLOL:

  3. #3

    ok

    Ok sembra perfetto...grazie mille!
    Senti però ho notato che se cerco ad esempio uno sport scrivendolo in minuscolo ed invece nel DB è stato inserito in maiuscolo....non me lo trova!

    Come posso ovviare a ciò!?

    Stavo pensando di estrarre i campi trasformandoli in minuscolo...ma se poi cerco ad esempio con un'iniziale maiuscola sto da capo a dodici!
    Digital XP - The new expression of digital art! - http://www.mimanchitu.it

  4. #4
    strano...in genere non dovrebbero esserci problemi di case nella ricerca sul db.
    ricontrolla se le LIKE che hai fatto sono giuste...
    ...ancora credi a internet? :maLOL:

  5. #5

    beh

    beh ma una LIKE non distingue il CASE!!! o sbaglio????

    sql_source = sql_source & "AND ATLETA LIKE '%"&Request.QueryString("ATLETA")&"%'"
    Digital XP - The new expression of digital art! - http://www.mimanchitu.it

  6. #6
    ciccio prova a farla così la like "ciccio%"
    ...ancora credi a internet? :maLOL:

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.