Invia l'allegato dell'sql generato dal MyAdmin, struttura + dati.
Invia l'allegato dell'sql generato dal MyAdmin, struttura + dati.
Aspettate mi sono sbagliato, ho scritto l'esempio errato. Stamattina ho provato e PORTO CERVO MARINA viene trovato nel db.
Vi porto l'esempio reale, oggetto del problema.
La località che devo cercare nel DB è BAIA DI CONTE (regolarmente inserita).
Se cerco:
"BAIA DI CONTE" la trovo tranquillamente (anche se cerco BAIA o CONTE)
Se cerco:
"BAIA CONTE" non la trovo.
Se volete posso postarvi anche il codice della ricerca. Graziee
![]()
Ora ricordo perchè ho visitato questi mondi...
Quanto tempo ho atteso...
Ricordo chi sono io e chi sono i miei nemici.
Se tu hai inserito %BAIA CONTE%, l'occorenza posta in ricerca non esiste.
Eventualmente vuoi muoverti in direzioni molteplici, dovresti crearti un espressione tale che, la tua variabile in presenza di spazi sostituisca tal carattere con "%", es. :
SELECT * FROM `Distanze` WHERE `Citta` LIKE '%Baia%Conte%'
Un altro sistema è spezzare la stringa di ricerca con il comando explode e associare il tutto ad un array.
Poi con un foreach si può procedere ad una ricerca più dettagliata.
Esempio: Se nell'input scrivi PORTO CERVO, la query al database farebbe due interrogazioni distinte sia con PORTO che con CERVO.
Non so quanto sia performante un metodo simile, penso comunque che i grossi motori di ricerca su internet agiscano all'incirca in questa maniera.
[supersaibal]Originariamente inviato da Atrus
Aspettate mi sono sbagliato, ho scritto l'esempio errato. Stamattina ho provato e PORTO CERVO MARINA viene trovato nel db.
Vi porto l'esempio reale, oggetto del problema.
La località che devo cercare nel DB è BAIA DI CONTE (regolarmente inserita).
Se cerco:
"BAIA DI CONTE" la trovo tranquillamente (anche se cerco BAIA o CONTE)
Se cerco:
"BAIA CONTE" non la trovo.
Se volete posso postarvi anche il codice della ricerca. Graziee
[/supersaibal]
ahhhh mi pareva
![]()
Io credo che i motori di ricerca lavorino più con la key IN che con dei "foreach" per ogni singola parola, avrebbero + accessi ad una tabella, che proprio in Mysql sono tra i + lenti nei database.[supersaibal]Originariamente inviato da Chierico80
Un altro sistema è spezzare la stringa di ricerca con il comando explode e associare il tutto ad un array.
Poi con un foreach si può procedere ad una ricerca più dettagliata.
Esempio: Se nell'input scrivi PORTO CERVO, la query al database farebbe due interrogazioni distinte sia con PORTO che con CERVO.
Non so quanto sia performante un metodo simile, penso comunque che i grossi motori di ricerca su internet agiscano all'incirca in questa maniera. [/supersaibal]
Addirittura ACCESS è + veloce nell'accedere ad una tabella!!!![]()
puoi benissimo spezzare la stringa in un array e poi ricrearla ad hoc per la query sql
l'ho buttata lì, magari funzia :master:Codice PHP:$arr_search = explode(" ",$parole_da_cercare);
$str_like = implode("%",$arr_search);
$query = "
SELECT *
FROM tabella
WHERE campo LIKE '%$str_like%'
ecc....
![]()