- Home
- Categorie
- Coding e Sistemistica
- Coding
- Query con like in php almeno credo
-
Query con like in php almeno credo
Salve ragazzi devo creare una query di ricerca , cioè l'utente inserisce una parola, e io devo vedere se questa parola è presente in tre campi del mio db e far spuntare i risultati, ma non so come impostare la query, qualcuno mi puo' aiutare?
Come faccio a fare un ricerca nel caso in cui si inserisca un parola, non facendo distinzione di maiuscole e minuscole e nel caso in cui si inseriscano piu parole?
E nel caso in cui un utente inserisca un parte di parola presente per esempio nel db ho la parola cassaforte, ma se l'utente inseisce cassa, come faccio a far visualizzare cassaforte, se è sempre possibile.
Il mio problema consiste nel fatto che non so di preciso come impostare questa ricerca...Grazie spero mi possiate aiutare.
-
Ciao,
ti scrivo alcuni esempi di query:Se i tre campi sono sulla stessa tabella:
[php]$query="SELECT * FROM nome_tabella WHERE nome_campo1 LIKE '%".$testo_da_cercare."%' OR nome_campo2 LIKE '%".$testo_da_cercare."%' OR nome_campo3 LIKE '%".$testo_da_cercare."%' ";[/php]Se i tre campi sono tabelle differenti puoi ripetere la stessa query per ciascuna tabella
[php]$query="SELECT * FROM nome_tabella WHERE nome_campo1 LIKE '%".$testo_da_cercare."%' "[/php]
Soluzione pratica e forse poco raffinata, ma più semplice dell'utilizzo di una UNIONSe devi cercare più parole senza preoccuparti dell'ordine in cui sono, sustituisci ogni singola condizione
nome_campo1 LIKE '%".$testo_da_cercare."%'
con:
(nome_campo1 LIKE '%".$parola_da_cercare1."%' AND nome_campo1 LIKE '%".$parola_da_cercare2."%' AND nome_campo1 LIKE '%".$parola_da_cercare3."%' )
Per quanto riguarda la ricerca Case sensitive/insensitive, dipende dalla COLLATION usata. Puoi trovare maggiori informazioni qui:
dev .mysql.com/doc/refman/5.0/en/string-comparison-functions.html
Alessandro
-
Ciao e grazie dell'aiuto.
-
A proposito, volevo chiedere un'altra cosa ma esiste qualcosa che fa cercare la parola, ma non faccia caso se sia minuscola o maiuscola, per esempio se metto la parola palla, e ne db ho PALLA, me la trova lo stessoo no??
-
Come ti ho scritto prima:
@Magicale said:Per quanto riguarda la ricerca Case sensitive/insensitive, dipende dalla COLLATION usata. Puoi trovare maggiori informazioni qui:
dev .mysql.com/doc/refman/5.0/en/string-comparison-functions.html
Alessandro
-
Ok, grazie non me ne ero accorto, una sola cosa, scusa la mia ignoranza, ma cosa intendi per COLLATION??
-
Le COLLATION definiscono il modo in cui vengono confrontati i set di caratteri (CHARSET) a cui fanno riferimento.
Qui è spiegato meglio:
database . html.it/guide/lezione/2445/i-set-di-caratteri/Alessandro