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

    ricerca "inizia con" su + termini

    Ciao a tutti, ho posto qualche tempo fa la stessa questione, credevo di aver risolto.. e invece

    Ho un motore di ricerca con opzione "inizia con" che cerca su un campo di testo (descrizione) che contiene vari termini

    es:"pippo topolino paperino"

    io voglio che se uno mette come chiave di ricerca "pipp", "top" o "pap" il record venga preso. Ho questa istruzione sql che mi funziona solo con il primo termine presente nel campo (pippo):

    codice:
    "SELECT * FROM tabella where (' ' & DESCRIZIONE & ' ') LIKE ' " &key&"%' "
    ma se metto come chiave "top" non ho risultati...
    Dove sbaglio?
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi creare una query dinamica che cerchi l'inizio di ogni termine nel campo del db.

    Roby

  3. #3
    Ciao roby, cosa intendi per query dinamica? Mi puoi fare un picclo esempio di come gestiresti la cosa? Grazie
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Deve diventare una cosa del tipo:

    codice:
    "SELECT * FROM tabella where "& DESCRIZIONE &" LIKE '"& key1 &"%' OR "& DESCRIZIONE &" LIKE '"& key2 &"%' "& DESCRIZIONE &" LIKE '"& key3 &"%'...."
    Devi creare dinamicamente i pezzi della query in base al numero di parole inserite nella ricerca.

    Roby

  5. #5
    no, aspetta... mi sa che mi sono spiegato male. Il problema non è quello di fare la ricerca con più chiavi, ma quella di fare la ricerca con una chiave su un campo che ha n termini, nel campo di imput del mdr metto "topo" e l'sql deve essere in grado di recuperare il record in cui nel campo "descrizione" c'e: "paperino topolino minni".

    Lo scrip che ho postatato mi funziona solo con il primo termine presente nel campo...
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  6. #6
    Utente di HTML.it L'avatar di daryl74
    Registrato dal
    Jun 2001
    Messaggi
    125
    Facendo in questo modo funziona con tutti i termini. Solamente che trova anche il testo in mezzo alle parole.

    Es.: topolino pippo minnie paperino paperone

    se cerchi "pap" il record verrà preso
    se cerchi "ipp" il record verrà preso comunque

    codice:
    "SELECT * FROM tabella where " & Descrizione & " LIKE '%" & Key & "%';"

  7. #7
    Si l'istruzione like in questo modo l'ho sempre usata ma in questo momento mi serve "l'inizia con" per fare delle ricerche che prendano singolari e plurali di ogni termine che non sia necessariamente inserito in maniera duplice....

    Mannaggia ma come si fa????
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  8. #8
    non mi volete + bene
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  9. #9
    Sql= "SELECT * FROM tabella WHERE campo LIKE '%_pape%' OR campo LIKE 'pape%'"

    In questo caso ti trova sia: "paperino" che "topolino paperino"

    Prova e dimmi fa al caso tuo..

    Nel tuo caso la sintassi sarà:

    Sql= "SELECT * FROM tabella WHERE campo LIKE '%_"&key&"%' OR campo LIKE '"&key&"%'"

  10. #10
    Ciao max, ho provato ma mi da lo stesso effetto di like, una ricerca con "nura" mi ha fatto uscire un record con pianura mentre io volgio che esca solo "nuraghi"...
    "Link2me.it: Professional network e Marketplace"
    www.link2me.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.