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

    evidenziare termini di ricerca

    Ho la necessità di evidenziare in grassetto i termini della ricerca attraverso un motore in php.
    Ho utilizzato uno script trovato in questo stesso forum:

    <?
    include("dbconnect.php");

    $wh="titolo like '%".implode("%' or titolo like '%",explode(" ",$chiave))."%'";
    $query = "SELECT titolo from attiv_darealizzare where $wh";
    $result = mysql_query($query);
    while ($row =
    mysql_fetch_array($result)) { $id = $row["id"];
    $titolo = $row["titolo"];
    $testo=str_replace($chiave,"".$chiave."",$titolo);
    echo "$testo
    ";
    }
    ?>

    dove $chiave è la parola da cercare. Tutto bene se inserisco solo una parola da cercare. Nel caso in cui si tratta di una frase anche di solo due parole, le parole cercate non vengono evidenziate. Qualcuno mi sa dire come poter modificare il tutto? Grazie

  2. #2
    Prova a sostituire

    $testo=str_replace($chiave,"".$chiave."",$titolo);

    con

    $chiavi=explode(" ",$chiave);
    $testo=$titolo;
    foreach($chiavi as $value)
    $testo=str_replace($value,"".$value."",$testo);

  3. #3
    Ho modificato il codice come hai detto tu e inserito come chiave di ricerca due termini (report e prova). Continua ad evidenziarmi solo la parola prova una volta eseguita la ricerca.



    <?
    include("dbconnect.php");

    $chiave = "report prova";


    $wh="titolo like '%".implode("%' or titolo like '%",explode(" ",$chiave))."%'";

    $query = "SELECT titolo from attiv_darealizzare where $wh";
    $result = mysql_query($query);

    while ($row =
    mysql_fetch_array($result)) { $id = $row["id"];
    $titolo = $row["titolo"];


    $chiavi=explode(" ",$chiave);
    $testo=$titolo;
    foreach($chiavi as $value)
    $testo=str_replace($value,"".$value."",$testo);


    echo "$testo
    ";

    }

    ?>

  4. #4
    a me funziona...
    Non ho provato con il DB ma con una cosa del genere, che dovrebbe essere uguale.

    codice:
    $chiave = "report prova";
    $titolo="questo è solamente un report, ma anche una prova";
    $chiavi=explode(" ",$chiave);
    $testo=$titolo;
    foreach($chiavi as $value)
      $testo=str_replace($value,"".$value."",$testo);
    
    echo "$testo
    ";

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.