Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Ricerca in DB mysql

  1. #1

    Ricerca in DB mysql

    Salve a tutti.
    Ho messo su un FORM per eseguire la ricerca di un termine in una tabella.

    Uso la seguente query:

    rs_ricerche.Open "SELECT * FROM tbl_testi where c_testo LIKE ('%"&Request.Form("termine")&"%') order by id DESC",Conn_ricerche,3,3

    Lo script funziona ed esegue la ricerca solo se nel form inserisco una sola parola Es: Pippo
    Se aggiungo Es: Pippo Casa non mi restituisce alcun record. Come posso risolvere?

  2. #2
    fai uno split di "pippo casa"

    la soluzione standard è la seguente

    codice:
    <%
    dim SQL, SQLwhere
    dim searchArray, searchText
    searchText = "pippo casa"
    searchArray = split(searchText," ")
    
    dim ii
    for ii=0 to ubound(searchArray)
         SQLwhere = SQLwhere & " c_testo LIKE '%" & searchArray(ii) & "%' AND"
    next
    
    if SQLwhere <> "" then
         SQLwhere = left(SQLwhere,len(SQLwhere)-len(" AND"))
         SQL = "SELECT * FROM tbl_testi WHERE" & SQLwhere & " order by id DESC"
         rs_ricerche.Open SQL,Conn_ricerche,3,3
         'stampa del recordset...
         rs_ricerche.Close
    else
         response.write "nessun termine cercato"
    end if
    %>
    la query risultante sarebbe poi questa

    codice:
    SELECT * FROM tbl_testi WHERE c_testo LIKE '%pippo%' AND c_testo LIKE '%casa%' order by id DESC
    questa soluzione cerca TUTTI i termini

    per cercarne ALMENO un termine devi scambiare a tutti gli AND degli OR
    san imente saluta

    * http://simonecingano.it *

  3. #3
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Ho suggerito uno script proprio ieri in questa discussione:

    http://forum.html.it/forum/showthrea...readid=1021362
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  4. #4
    A me servirebbe solamente che la query non fosse limitata all'inserimento nel form di una singola parola ma che potesse accettare ( e cercare anche una frase )
    Non capisco come mai LIKE non esegua automaticamente questo.

  5. #5
    Nell'esempio suggerito da IMENTE ho eseguito quanto segue:

    searchText = Request.Form("termine")

    Ma il termine trovato non corrisponde alla ricerca

  6. #6
    Originariamente inviato da Pattys
    Nell'esempio suggerito da IMENTE ho eseguito quanto segue:

    searchText = Request.Form("termine")

    Ma il termine trovato non corrisponde alla ricerca
    non capisco...

    in ogni caso

    ci sono 3 tipi di ricerche

    1. TUTTE LE PAROLE (si usa il mio script con AND)
    2. ALMENO UNA PAROLA (si usa il mio script con OR)
    3. FRASE ESATTA (si usa solo LIKE, come facevi tu prima)

    dovresti modificare quello che ti ho dato e sviluppare indipendentemente i 3 casi
    per esempio passando il valore (1, 2 o 3) attraverso una combo o option
    san imente saluta

    * http://simonecingano.it *

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.