nel gestionale che ho appena finito, viene salvato un campo con il titolo del libro che si sta catalogando.
c'è poi un motore di ricerca che permette di impostare la chiave di ricerca e lo script restituisce tutti i titoli presenti nel database con la chiave desiderata.
il problema è questo: il cliente mi ha chiesto che sia possibile ottenere come risultato sia i titoli con dentro la parola ricercata, sia quelli con le sue eventuali vocali accentate. faccio un esempio: immaginiamo che nel database siano salvati due titoli:
città
citta
uno con la a accentata e uno senza.
mettendo come chiave "citta" devono saltar fuori entrambi.
io gli ho risposto che questo non era possibile in quanto sono due lettere diverse. e infatti secondo lo standard ascii sono due lettere diverse.
poi, per curiosità, ho provato cosa succede.
in pratica, ho salvato nel database un titolo di esempio:
"perchè"
e salta fuori come risultato quel titolo sia che io metta "perchè", sia che io mettà "perché" sia che io metta "perche"
in pratica, lo script fa, senza volerlo, quello che vorrebbe il cliente, mentre invece dovrebbe rispondere come risultato solo quello che effettivamente io gli ho chiesto.
posto che la cosa mi fa felicissimo perchè involontariamente risolve un problema del cliente, qualcuno mi sa spiegare come mai?
giusto per informazione, il database è mysql e i titoli vengono salvati in un campo di tipo varchar e lunghezza 200, mentre questa è l'istruzione che lo script usa per la ricerca:
codice:$query=mysql_query("SELECT * FROM titoli WHERE titolo LIKE '%$titolo%'");