Salve,
Allora devo fare un motore di ricerca interno al sito in php e mysql.
Allora il punto è questo:
Devo ricercare un stringa all'interno di un testo e non necessariamente le parole della stringa cercata devono essere in sequenza. Mi spiego:
Allora io ho nel db il seguente testo in una riga del database:
"Oggi è un bella giornata di sole poichè siamo in estate."
Per trovare questo testo io nel motore di ricerca devo aver inserito:
"oggi" - "bella" - "giornata sole estate" - "siamo in estate" ect.
-----
Se per esempio, in un'altra riga del db ho il testo:
"Oggi piove perche' siamo in inverno."
E cerco solo "Oggi"....... mi dovrà restituire tutte e due i testi; se invece cerco "Oggi inverno" mi darà solo la seconda riga..... invece se cerco "oggi estate".... solo la prima e così via.
Praticamente la ricerca dovrebbe filtrare i risultati in base all'input.
****************
Concettualmente sarei propenso ad operare così:
Creo un array di elementi partendo dalla stringa inserita dall'untente per la ricerca:
$array = explode(" ", $stringa_utente);
ciclo for per cercare gli elementi attraverso una query sql (e qui penso di sbagliare qualcosa)
for($i=0; $i<count($array); $i++){
$key = $array[$i];
SELECT * FROM database WHERE $parola LIKE "%$key%";
}
Fatto sta che in questo modo la ricerca non viene filtrata ma vengono restituiti tutti i testi in cui ci sono presenti le parole da cercare inserite...
esempio: cerco "oggi inverno" mi restituisce entrambe le righe invece di stampare solo la seconda riga!!!