PDA

View Full Version : [PHP-MySQL] Cercare sottostringhe nel DB, come fan le Pagine Gialle


Matrixbob
27-07-2005, 10:33
Quando per esempio cercate un parrucchiere, ma non vi ricordate bene come si chiamava sto parrucchiere, ma magari vi ricordate solo che era a "Napoli" e nel nome del negozio c'era la stringa "Figarò".

Io vorrei cercare appunto "Figarò" nel campo nome dei parrucchieri di "Napoli" che stanno in una tabella del mio DB.

Come se cercassi in Winzoz: *Figarò* :o

C'è 1 modo semplice ed efficiente di farlo?!

Io ho pensato:
[1] Espressioni Regolari?!
[2] Funzioni di PHP?!

Brazorv
27-07-2005, 10:54
select * from nometabella
where nome like '%Figaro%'

Alvaro Vitali
27-07-2005, 10:58
Puoi usare l'operatore "LIKE" di MySql:

$query = "SELECT * FROM nometabella WHERE barbiere LIKE '%$parola%' OR via LIKE '%$parola%' OR ..."

Matrixbob
27-07-2005, 11:03
Puoi usare l'operatore "LIKE" di MySql:

$query = "SELECT * FROM nometabella WHERE barbiere LIKE '%$parola%' OR via LIKE '%$parola%' OR ..."
Cavolo non pensavo fosse così facile, infatti stavo ravanando qui:
Stringhe in MySQL: trucchi e soluzioni (http://freephp.html.it/articoli/print_articolo.asp?id=167)
e qui:
Tutto sulle stringhe in PHP (http://freephp.html.it/articoli/view_articolo.asp?id=151&pag=1)

Sto PM provo la soluzione avveneristica che mi avete proposto! :D

SELECT * FROM taballa
WHERE nome LIKE '%Figarò%' AND paese='Napoli';

VegetaSSJ5
27-07-2005, 13:58
io ho realizzato una funzione di ricerca utilizzando la funzione stripos di php, non sapevo dell'esistenza dell'operatore LIKE di mysql. sicuramente usando il like si ottiene una soluzione più performante di quella che ho fatto io.