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

    omissione della parte di testo cercato nei risultati di ricerca con telefonino

    Salve a tutti,
    in questo script di ricerca nel mio sito www.libriantichicavallero.com
    quando si cerca in
    https://www.libriantichicavallero.com/cerca.php
    un testo per titolo ad es:"dante"
    i risultati che appaiono sono privi della parte di testo cercato. Questo però vale solo per ricerche tramite telefonino (iphone) non per pc fisso, come mai ?

    <?
    ini_set('default_charset', 'utf-8');
    ?>
    <?
    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");


    mysql_set_charset("utf8");


    $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>

  2. #2
    Ho notato che non sempre accade nemmeno con il telefonino, mi spiego:
    se ad es cerco "Dante" il problema si verifica.
    se ad es cerco "Fabio" il problema non si verifica.

    Forse perchè il primo testo trovato inizia proprio con la parola "Dante" ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Il sito non è responsive quindi da telefono è un po' incasinato.
    Però a me il problema non si verifica mai.

  4. #4
    Grazie, ora ho inteso, anche documentandomi sul termine responsivo che non conoscevo.
    Il fatto di renderlo tale comporta enormi modificazioni ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Il layout è piuttosto semplice, quindi non ci sarebbero grossissime modificazioni da fare.
    Però c'è da rivedere un po' tutto il layout, quindi non è nemmeno una cosa che si fa in 5 minuti.

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.