Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245

    Search con più keywords

    Ciao a tutti,
    ho un problema con una query al db: ho una pagina che attraverso un form fa una query in base ad una keyword:

    codice:
    SELECT * FROM ricette
    codice:
    WHERE titolo LIKE '%" . $Parolachiave . "%'
    Se $Parolachiave è solo una parola funziona correttamente, ma avrei bisogno di impostare la ricerca anche nel caso in cui $Parolachiave sia uguale ad esempio a due parole, tipo "pinco palla".
    E' la prima volta che faccio una roba del genere, e non ho idea di come farla: qualcuno??

    Grazie in ant.
    Laura

  2. #2
    devi usare una OR esempio

    codice:
    select * from tabella where campo like '%pinco%' or campo like '%palla%'
    per fare questo splitti la stringa di ricerca utilizzando lo spazio come carattere di split, e poi guardi quanti elementi hai trovato. Se sono + di 1 sai che dovrai metterci l'or.


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    Così semplice?? Pensavo fosse una cosa più difficile e complessa...

    Grazie 1000!
    Laura

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Originariamente inviato da Popper
    devi usare una OR esempio

    codice:
    select * from tabella where campo like '%pinco%' or campo like '%palla%'
    per fare questo splitti la stringa di ricerca utilizzando lo spazio come carattere di split, e poi guardi quanti elementi hai trovato. Se sono + di 1 sai che dovrai metterci l'or.
    cosi' funziona solo se sei tu ad usare loscrit perche' conosci esattamente le parole da ricercare, ma se fosse una ricerca da parte di un utente dovresti fare una cosa del genere:
    $dati = explode(" ",$Parolachiave);
    sapendo che $Parolachiave e' composta da 2 parole hai ora $dati[0] e $dati[1] che sono le due parole

    Poi nella select: SELECT * FROM ricette WHERE titolo LIKE '%".$dati[0]."%' OR titolo LIKE '%".$dati[1]."%'

    se possono essere piu' parole converrebe eseguire un ciclo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    Molto probabilmente userò un ciclo, perchè non posso stabilire quante siano le parole ricercate. Grazie 1000.

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    sai gia' come fare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    In realtà no, sto guardando un pò in giro...mi puoi aiutare?

  8. #8
    Originariamente inviato da marco80
    cosi' funziona solo se sei tu ad usare loscrit perche' conosci esattamente le parole da ricercare, ma se fosse una ricerca da parte di un utente dovresti fare una cosa del genere:
    $dati = explode(" ",$Parolachiave);
    sapendo che $Parolachiave e' composta da 2 parole hai ora $dati[0] e $dati[1] che sono le due parole

    Poi nella select: SELECT * FROM ricette WHERE titolo LIKE '%".$dati[0]."%' OR titolo LIKE '%".$dati[1]."%'

    se possono essere piu' parole converrebe eseguire un ciclo.
    era sottointeso che va fatto un ciclo dentro all'if.
    la split e la explode fanno la stessa cosa, solo che alla split puoi passare espressioni regolari ( che devo decidermi ad imparare )


  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Scusate se mi intrometto, ma come si userebbe il ciclo. Per esempio, se io creo una form che abbia all'interno un campo ingredienti che contenga n ingredienti, e devo fare una ricerca sul database.... come si usa il ciclo? l'explode l'ho capito, ma il ciclo qualcuno riesce a spiegarmelo?

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.