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

    script di ricerca per fascie di anno

    Saluti a tutti,
    qualcuno, in un mio precedente quesito posto in altro forum, mi aveva fatto notare che nel mio sito di vendita libri antichi, la ricerca per anno non è abbastanza profiqua, anzi, così comè impostata è una perdita di tempo.-
    Mi spiego meglio: se si vogliono visionare tutti i libri dall'anno 1800 al 1900 non è possibile farlo se non digitando 18 e basta ma pescando anche ad es. i libri del 1918, 1818, ecc...
    Riconosco forse di chiedere troppo ma qualcuno saprebbe aiutarmi in tal senso a creando un script nuovo o modificando l'attuale ?
    Ringrazio
    Pier Mario

  2. #2
    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>

  3. #3
    nessuno mi sa aiutare, magari anche solo fornirmi qualche link dove reperire info ?
    Grazie
    Pier

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.