Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Motore di ricerca

  1. #1

    Motore di ricerca

    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

  2. #2
    nessuno sa aiutarmi ?
    Se invece digito altre parole tutto funziona !
    Grazie anticipatamente
    Pier

  3. #3
    Perché cerchi la stringa in tutto l'html, non solo nel testo vero!
    Prova a cercare align o altre parole che fanno parte dell'html!
    Poi evidenziandola in giallo rendi incasinato il codice html!!!

    L'errore vero é mettere la formattazione su db. Se un domani vuoi cambiare formattazione dovrai aggiornare tutto il db.
    Di solito su db ci si inseriscono i testi e la formattazione la si mette separata.

  4. #4
    Ho capito ma come posso ovviare materialmente al problema ?

  5. #5
    Comunque il problema rimane ristretto a poche parole di linguaggio che spero a nessuno venga in mente di cercare, visto che trattasi di un motore di libri antichi.-
    Ti ringrazio, ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.