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