Questa la pagina di ricerca:
http://www.libriantichicavallero.com/cerca.php
e questo l'attuale il file search.php:
<form name "cerca1" method="post" action="result.php">
<input TYPE="hidden" NAME="submitted" VALUE="base">
Ricerca per:
<input TYPE="radio" NAME="criterio" VALUE="autore">
Autore
<input TYPE="radio" CHECKED NAME="criterio" VALUE="titolo">
Titolo
<input TYPE="radio" NAME="criterio" VALUE="descrizione">
Descrizione
<input TYPE="radio" NAME="criterio" VALUE="editore">
Editore
<input TYPE="radio" NAME="criterio" VALUE="anno">
Anno
<input TYPE="TEXT" onfocus="this.value='';" SIZE="35" NAME="chiave" value="Inserisci un termine di ricerca...">
<input TYPE="submit" ACTION="result.php" VALUE="cerca" METHOD="get" NAME="search">
</form>
---------------------------------------------
questo il file result.php:
<?
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></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\" align=\"left\">$row[AUTORE]</td>
<td valign=\"top\" align=\"left\"><a href=\"view.php?N=$row[N]\" title=\"Dettagli\">$row[TITOLO]</a></td>
<td valign=\"top\" align=\"right\">$row[ANNO]</td>
</tr>";
// 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:green'>\\1</span>",$stringa);
}
}
// fine
}
if ($i == 0)
{
$stringa = "<table><tr><td>Spiacente, non abbiamo 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)\">Indietro</a>";
?>
</p>