Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    8

    problema con LIKE %parola%

    Ciao,

    Ho realizzato un motore di ricerca seguendo lo script della guida di pratica http://php.html.it/guide/lezione/228...ore-di-ricerca

    Funziona.
    Unico problema è questo:
    Se inserisco una parola che esiste nel db mi restituisce il numero di risultati.
    Ma se inserisco un frammento di parola es.: "par" mi restituisce i risultati di "parola".

    Spero di essere stato chiaro.

    Grazie
    Giovanni

  2. #2
    ovviamente:

    %parola% restituisce tutto quello che si trova prima e dopo "parola"
    %par% fa esattamente lo stesso poiche' "ola" fa parte di quello che vien dopo.

    Se vuoi la parola esatta mettici uno spazio prima e dopo.

    % par %
    rendera' solo quello che si trova prima e dopo lo spazio selezionando quindi solo "par" e non "parola"

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    8
    Ciao Piero,

    Ho provato ad inserire uno spazio % par %
    ma in questo modo non mi restituisce nessun risultato.

    Grazie
    Giovanni

  4. #4
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Perchè probabilmente non esiste nel DB la parola "par", quindi è giusto.
    Considera cmq che non sempre prima e dopo una parola ci sono spazi. Potrebbero caratteri diversi, di punteggiatura per esempio.
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  5. #5
    Originariamente inviato da giove07
    Ho provato ad inserire uno spazio % par %
    ma in questo modo non mi restituisce nessun risultato.
    non devi "provare a..." ma devi capire qual'e' la mimica del LIKE.

    Se tu non hai "par" ovvio che non restituisce nulla mettendo "% par %".

    Mi pareva fosse quello il tuo problema. Ti lamentavi che con "%par%" ti rende anche "parola". siamo esattamente nella logica di funzionamento che ti ho descritto prima ed il comportamento di LIKE e' assolutamente corretto.

    Quindi quale sarebbe il tuo problema?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    8
    Grazie per le risposte.

    Se inserisco % parola da cercare % non mi prende nemmeno la parola che esiste nel DB, se non esiste lo spazio prima o dopo la parola da cercare.

    Ciao
    Giovanni

  7. #7
    Originariamente inviato da giove07
    Grazie per le risposte.

    Se inserisco % parola da cercare % non mi prende nemmeno la parola che esiste nel DB, se non esiste lo spazio prima o dopo la parola da cercare.

    Ciao
    Giovanni
    non ci capiamo.

    posta un esempio reale di cio' che hai nella tabella, di cio' che usi per la ricerca nella select e di cio' che ti aspetti di ricevere.

    % vuol dire "TUTTO, PRIMA O DOPO che sia", se mettere o meno uno spazio tra la parola ed il carattere jolly dipende solo da te, da quello che hai e da quello che vuoi ottenere. Miracoli nel software non c'e' ne sono piu'.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    8
    Ciao Piero,

    La query è questa:

    "SELECT id_articolo, titolo_art FROM articoli WHERE parola_chiave1 LIKE '%$parola%' OR parola_chiave2 LIKE '%$parola%' OR parola_chiave3 LIKE '%$parola%' OR "

    Le parole chiavi si trovano nella tabella articoli.

    Grazie
    Giovanni

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    quello che intende piero.mac è che il funzionamento di LIKE è quello. Qualsiasi cosa tu stai cercando la troverai se sei nei "parametri" del funzionamento... Se non trova certe parole e queste sono presenti ovvio che è sbagliato. Sempre nei limiti del funzionamento dell'operatore LIKE...
    la select comunque è corretta..

  10. #10
    Originariamente inviato da giove07
    Ciao Piero,

    La query è questa:

    "SELECT id_articolo, titolo_art FROM articoli WHERE parola_chiave1 LIKE '%$parola%' OR parola_chiave2 LIKE '%$parola%' OR parola_chiave3 LIKE '%$parola%' OR "

    Le parole chiavi si trovano nella tabella articoli.

    Grazie
    Giovanni
    ma cos'e' quel OR finale ????? per il resto gia' ti ha detto telegio

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.