Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    motore ricerca che mi elimina il termine ricercato

    Salve, ho il seguente motore di ricerca alla pagina:

    http://www.libriantichicavallero.com/cerca.php

    digitando ad es "dante" o ad es "roma" l'esito della ricerca restituisce i titoli che contengono la stringa ricercata ma senza visualizzare tale termine, come mai ?

    Se invece digito ad es "Padova" esso compare.
    Non comprendo da che cosa dipenda.

    Questo il file "search.php":
    <form name "cerca1" method="post" action="result.php">

    <input TYPE="hidden" NAME="submitted" VALUE="base">

    <b>Ricerca per:</b>
    <br />

    <input TYPE="radio" NAME="criterio" VALUE="autore">
    Autore

    <br />

    <input TYPE="radio" CHECKED NAME="criterio" VALUE="titolo">
    Titolo

    <br />

    <input TYPE="radio" NAME="criterio" VALUE="descrizione">
    Descrizione

    <br />

    <input TYPE="radio" NAME="criterio" VALUE="editore">
    Editore

    <br />

    <input TYPE="radio" NAME="criterio" VALUE="anno">
    Anno

    <br />

    <input TYPE="TEXT" onfocus="this.value='';" SIZE="35" NAME="chiave" value="Inserisci un termine di ricerca...">
    <br />
    <input TYPE="submit" ACTION="result.php" VALUE="cerca" METHOD="get" NAME="search">

    </form>


    e questo il file "result_sub.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: <i>{$_POST['criterio']}</i><br>";
    echo"Chiave di ricerca: <i>$chiave</i><br>";
    echo"Risultati: <i>$num_righe</i><br><br>";
    // fine

    $i = 0;
    while ($row=mysql_fetch_array($result))
    {
    $i++;

    $stringa .= "<tr><td valign=\"top\"><b>$row[N]</b></td><td valign=\"top\" align=\"left\">$row[AUTORE]&nbsp;</td>
    <td valign=\"top\" align=\"left\"><a href=\"view.php?N=$row[N]\" title=\"Dettagli\">$row[TITOLO]</a></td>
    <td valign=\"top\" align=\"right\">&nbsp;$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,"<b><span style='color:green'>\\1</span></b>",$stringa);
    }
    }
    // fine

    }
    if ($i == 0)
    {
    $stringa = "<table><tr><td><i>Spiacente, non abbiamo trovato elementi corrispondenti!<br><br>Prova ad inserire un minor numero di termini.</i><br><br>Oppure <a href=form/indexpostadesiderata.php title=Desiderata>comunicaci la tua richiesta.</a></td></tr>";
    }
    $stringa .= "</table>";
    echo $stringa;

    mysql_close();
    ?>

    <p align="center">
    <?
    echo "<a href=\"#\" onclick=\"history.go(-1)\">Indietro</a>";
    ?>
    </p>

    Grazie sin d'ora a chi mi vorrà aiutare.
    Pier Mario

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    non ho capito bene, ma ho provato sul sito linkato le ricerche dei termini che hai citato e per tutti ho avuto il risultato con la parola evidenziata nel campo titolo

  3. #3
    ho provato a digitare "dante" ma a me restituisce nel campo titolo:

    e i codici danteschi

    . La vita - Le opere - Le grandi città dantesche - Dante e l'Europa

    Vita di

    etc... ma tutti i titoli sono privi del termine "dante

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    In che senso sono privi del termine Dante? E quelli in verde cosa sono allora?

  5. #5
    Quote Originariamente inviata da clasku Visualizza il messaggio
    In che senso sono privi del termine Dante? E quelli in verde cosa sono allora?
    allora forse è solo un problema di visualizzazione sul mio pc ?
    ripeto: a a me appaiono solamente i titoli senza il termine "dante"
    ad es:

    "Vita di"

    anzichè

    "Vita di Dante"

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Dante e l'Europa lo vedi?

  7. #7

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.