ciao a tutti, ho bisogno di fare una ricerca su un sito e devo poter cercare più parole in più campi, non so se avete capito, lo spiego meglio:
prendiamo ad esempio che nel campo cerca scrivo 'mario rossi 0171' devo trovare tutti gli utenti che tra nome, cognome, telefono e email abbiano tutte quelle parole.
Il mio metodo è il seguente:
il problema è che ci sono circa 500.000 utenti e la ricerca a volte impiega ache più di 40-50 secondi. Avete un metodo alternativo? o qualche correzione?codice:$vsSql="select * from utenti"; $vlQry=mysql_query($vsSql,$vlDb) or die (mysql_error()); $trovato=1; while($vaRow=mysql_fetch_array($vlQry,MYSQL_ASSOC)) { $stringa=$vaRow[nome].' '.$vaRow[cognome].' '.$vaRow[tel].' '.$vaRow[email]; $stringa2 = explode (" ", $_GET[cerca] ); foreach ($stringa2 as $parola) { if(stristr($stringa,$parola)) {} else {$trovato=0;} } if($trovato) { echo $vaRow[id]; } }

Rispondi quotando