Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727

    PHP: query con carattere %

    ho letto e riletto da molte parti che se faccio una query ad un db del tipo-->

    $query .= "nome LIKE '%$parola%'

    cito testualmente-->
    % all'inizio indica che prima di "parola" possono comparire altri caratteri. Quindi "parola" non deve necesariamente trovarsi all'inizio della cella. Stessa cosa indica il simbolo % alla fine. Quindi inserendo questi due simboli abbiamo indicato di verificare se la cella titolo contiene la parola "parola" in una qualunque posizione: all'inizio, al centro o alla fine.

    orbene perchè allora un record che ha come nome SQUAL non mi viene estratto se scrivo SQUALO ??????????? (e se scrivo solo SQUAL viene estratto...)
    è semplicemente una O dopo la parola squal no?
    con il % dovrebbe prenderla, no?
    dove sbagliooo???

  2. #2
    %SQUALO% e' ben diverso da %SQUAL%

    nella prima metti come condizione che sia presente L'INTERA parola "SQUALO" nella stringa indicata. Se manca una O significa che NON c'e' la parola obbligata.

    Nella seconda indichi che puo' essere presente qualsiasi cosa prima e/o dopo "SQUAL"....

    that's all....

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727
    argh non mi sono spiegato
    se io scrivo nel campo di ricerca SQUAL
    e ho messo nella query % prima e dopo il termine da cercare
    lui dovrebbe restituirmi:
    SQUAL
    SQUALO
    SQUALA
    SQUALI
    SQUALETTI
    SQUALONI ecc ecc
    no?

  4. #4
    Originariamente inviato da theseo
    argh non mi sono spiegato
    se io scrivo nel campo di ricerca SQUAL
    e ho messo nella query % prima e dopo il termine da cercare
    lui dovrebbe restituirmi:
    SQUAL
    SQUALO
    SQUALA
    SQUALI
    SQUALETTI
    SQUALONI ecc ecc
    no?
    certo che si..... a meno che tu non abbia messo uno spazio tra "SQUAL" e %

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727
    e invece no
    ed è x quello che sto diventando matto
    vi scrivo la mia query

    $query .= "nome LIKE '%$parola%' OR categoria LIKE '%$parola%' OR sottocategoria LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR ";

    ebbene io volutamente ho immesso un record che nel campo descrizione ha SQUAL
    poi nel campo di ricerca scrivo SQUALO e quello lì non esce fuori
    esce fuori solo se scrivo SQUAL
    ahhhhhhhh perchè????

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    eh no, se nel record del db hai SQUAL e tu cerchi SQUALO, lui non trova nulla... al contrario se hai nel record del db SQUALO e tu cerchi SQUAL, allora si che ti trova quello che ha tra le %

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727
    ok hackerdm succede proprio come dici tu
    allora vi chiedo: come posso fare in modo che estragga il record SQUAL se io scrivo SQUALO ??
    ho provato anche con * al posto di % ma non cambia nulla

  8. #8
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Originariamente inviato da theseo
    ebbene io volutamente ho immesso un record che nel campo descrizione ha SQUAL
    poi nel campo di ricerca scrivo SQUALO e quello lì non esce fuori
    esce fuori solo se scrivo SQUAL
    ahhhhhhhh perchè????
    "%SQUAL%" equivale a dire: tutte le stringhe che comprendono SQUAL.
    "SQUAL" è una stringa compresa nella stringa "SQUALO", quindi se nel DB hai un record contenente SQUALO, specificando nella query la ricerca di "%SQUAL%" il record verrà selezionato.
    Al contrario "SQUALO" non è una stringa compresa in "SQUAL", quindi se nella query chiedi di ricercare la stringa "%SQUALO%" non potrai mai avere come risultato il record che contiene solo "SQUAL".

    Quindi, se nel campo di ricerca inserisci SQUALO e il record contiene una stringa SQUAL, è giusto che non venga selezionato.

    Spero di essere stato chiaro
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  9. #9
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Originariamente inviato da hackerdm
    eh no, se nel record del db hai SQUAL e tu cerchi SQUALO, lui non trova nulla... al contrario se hai nel record del db SQUALO e tu cerchi SQUAL, allora si che ti trova quello che ha tra le %
    Non so dirti se è quel che ti serve, ma prova questo:
    Codice PHP:
    SELECT *
    FROM tua_tabella
    WHERE 
    'testo_ricerca' LIKE concat'%', `descrizione` , '%' 
    Ovviamente modifica testo_ricerca con il testo da ricercare e tua_tabella con la tua tabella
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727
    grazie leo
    molto chiaro, molto più chiaro del pezzo di manuale che ho citato nel primo post
    allora chiedo: c'è modi di far uscire il record SQUAL scrivendo SQUALI ???
    forse no, eh?

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.