Ciao a tutti,
sapete dirmi il perchè digitando ad es. "val vigezzo" nel motore di ricerc interno al mio sito:
http://www.libriantichicavallero.com/cerca.php
mi restiuisce un casino che metà basta ??
Ecco lo script:
<?
include("config.inc.php");
include("stile.php");
$stringa = "<table border=\"1\"><tr><td valign=\"top\" style=\"color:red\">N</td><td valign=\"top\" style=\"color:red\">AUTORE</td><td valign=\"top\" style=\"color:red\">TITOLO</td><td valign=\"top\" align=\"center\" style=\"color:red\">ANNO</td><td valign=\"top\" align=\"center\" style=\"color:red\"></td><td valign=\"top\" align=\"center\" style=\"color:red\"></td></tr>";
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$sql="SELECT * FROM articoli WHERE ";
$where="";
// serve per eliminare gli spazi prima e dopo la parola cercata
$str=strip_tags(trim($_POST['chiave']));
// fine
// serve per evidenziare la parola cercata
$search = explode(" ", trim($_POST['chiave']));
for ($i=0; $i<count($search); $i++)
$search[$i] = "/(".trim($search[$i]).")/i";
// fine
// esplode le parole cercate mettendole in un array
$words=explode(" ",$str);
// fine
while (list($key,$value) = each($words)) {
$words[$key] = "{$_POST['criterio']} LIKE '%". $words[$key] ."%'";
}
$where = implode(" AND ", $words);
$result = mysql_query($sql.$where, $db);
// conteggia i risultati
$num_righe=mysql_num_rows($result);
echo"Ricerca per: {$_POST['criterio']}
";
echo"Chiave di ricerca: $chiave
";
echo"Risultati: $num_righe
";
// fine
$i = 0;
while ($row=mysql_fetch_array($result))
{
$i++;
$stringa .= "<tr><td valign=\"top\">$row[N]</td><td valign=\"top\">$row[AUTORE]</td><td valign=\"top\">$row[TITOLO]</td><td valign=\"top\"align=\"center\">$row[ANNO]</td><td valign=\"top\"align=\"center\"><a href=\"view.php?N=$row[N]\" title=\"Dettagli\" class=\"link_libro\"><img border=0 width=45 height=25 src=\"icona dettagli.gif\"></a></td><td valign=\"top\"align=\"center\"><a href=\"indexposta.php?N=$row[N]\" title=\"Acquista\"><img border=0 width=35 height=25 src=\"icona order.gif\"></a></td>";
// rimpiazza la parola cercata con la stessa parola ma evidenziata
foreach ($search as $k) {
if (strlen(ereg_replace("/\((.*)\)/","\\1", $k)) > 3) {
$stringa = preg_replace($k,"<span style='color:yellow'>\\1</span>",$stringa);
}
}
// fine
}
if ($i == 0)
{
$stringa = "<table><tr><td>Spiacente, non ho trovato elementi corrispondenti!
Prova ad inserire un minor numero di termini.
Oppure comunicaci la tua richiesta.</td></tr>";
}
$stringa .= "</table>";
echo $stringa;
mysql_close();
?>
<p align="center">
<?
echo "<a href=\"#\" onclick=\"history.go(-1)\">Torna indietro</a>";
?>
</p>
Ringrazio
Pier