Ciao a tutti ragazzi, ho un problema con una ricerca FullText fatta con PHP e MySQL, in pratica la ricerca ha un solo campo per ricerca il codice di un prodotto con la seguente stringa:
Ma ho dei problemi con l'operatore jolly *, vi faccio un esempio pratico:codice:SELECT *, MATCH(codice) AGAINST('$codice') as score FROM prodotti WHERE MATCH(codice) AGAINST('$codice') ORDER BY score DESC
Volevo fare una ricerca su 3 livelli in modo che se non trova il codice esatto costruisco un array in cui ogni elemento è la stringa inserita in cui ogni carattere si sostituisce alternativamente con un *, quindi se inserisco ABCDE-5 e non trova niente avrò il seguente array:Ipotizziamo che il codice del prodotto giusto sia ABCDE-5:
- Se io inserisco ABCDE-5, ABCDE-, ABCDE mi trova dei risultati mentre se inserisco ABCD non mi trova niente;
- Se inserisco ABCDE-5*, *ABCDE-5, ABCDE-*, ABCDE* mi fornisce dei risultati, mentre con ABCD* o cose del genere non mi fornisce niente;
- Se inserisco ABCDE*5 mi da dei risultati, mentre con ABCD*-5 oppure ABCD*5 non mi restituisce niente;
Poi effettuerò la ricerca per ogni elemento e quando trovo dei risultati fermo il ciclo, però non dandomi dei risultati provandolo a mano non posso usare questo metodo, dove sbaglio?*ABCDE-5, *BCDE-5, A*CDE-5, AB*DE-5, ABC*E-5, ABCD*-5, ABCDE*5, ABCDE-*, ABCDE-5*, ABCDE-5*
Grazie mille

Rispondi quotando