Salve a tutti,
mi sto facendo un piccolo motorino di ricerca per il mio sito attraverso un pò di fantasia e post letti qui dentro![]()
Per ora funziona tutto ma ...
Sono giunto ad un problema .. se qualcuno cerca: "il gatto bianco" vorrei che la parola IL fosse ignorata perchè troppo breve ...
quindi dire al mio motore di ricerca "ignora tutte le parole sotto i 3 caratteri".
come è possibile fare ciò?
codice:<? $db=mysql_connect($host,$user,$pass) or die ("Errore durante la connessione al database"); // Selezione del database $db_name="........."; //nome tabella $tabella="............"; //seleziona il database mysql_select_db($db_name,$db) or die("Impossibile selezionare il database $db_name."); $sql="SELECT * FROM $tabella WHERE "; $where=""; ######################################## //aggiungi questo se la versione di php è successiva alla 4.1.0 //trim elimina gli spazi prima e dopo la parola inserita nel form //strip_tags elimina ogni tag HTML inserito nel form ######################################## $str=strip_tags(trim($_POST['str'])); //elimina ogni tag html immesso nel form!! strip_tags($_POST['str']); $words=explode(" ",$str); $j=0; while (isset($words[$j])) { $where=$where."nome LIKE '%".$words[$j]."%' OR descrizione LIKE '%".$words[$j]."%'"; if (isset($words[$j+1])): $where=$where." OR "; endif; $j++; } $result = mysql_query($sql.$where, $db); while ($row=mysql_fetch_array($result)) { print("<A class=verdananerobold HREF=\"".$row["icona"].".html\">".$row["nome"]."</A> <A class=verdananero10px HREF=\"sezione.php?categoria=".$row["categoria"]."\">[".$row["categoria"]."]</A> "); print("".$row["descrizione"].""); print("<div align=right> click: ".$row["hits"]."</div>"); print("<HR SIZE=\"1\"> "); } mysql_close(); ?>
Grazie anticipatamente![]()

Rispondi quotando