изменение свойств слов в поиске php


Говорит о принадлежности, заключается в следующем у меня есть скрипт поиска php, я хотел бы, чтобы, когда он открывает в результате свойств искали слово были изменены(фон, размер, etc), например, полагаю, имя пользователя 'joao' система возвращает мне таблицу с результатами, относящихся только, что вместо того, чтобы показать мне результат обычно система изменит фон слова, которая была исследована, хорошо, проблема в том, я не знаю, если я могу, или я должен сделать это только с php, или я должен использовать javascript, помня, что я не прошу никакой код не готов, да и "лучший путь"

Следующий код, как результаты запроса отображаются

while ($linha = $query->fetch(PDO::FETCH_ASSOC)) {

                                        echo '<tr class="odd gradeX">';
                                        echo '<td>' . $linha['NOME'] . '</td>';
                                        echo '<td>' . $linha['EMAIL'] . '</td>';
                                        echo '<td>' . $linha['LOGIN'] . '</td>';
                                        echo '<td>' . $linha['DT_NASCIMENTO'] . '</td>';
                                        echo '<td>' . $linha['DT_ULTIMOACESSO'] . '</td>';
                                        echo '<td>' . $linha['IP'] . '</td>';
                                        echo '</td>';

                                    }

приведенный выше код генерирует результаты в этой таблице exemplo

 1
Author: wwwjsw, 2014-12-24

1 answers

Предполагая, что вы используете query поэтому SELECT * FROM tabela WHERE NOME LIKE ? OR EMAIL LIKE ? и переменная внутри глобального вызова $_GET, лучшим способом было бы создать функция, чтобы сделать эффект в сочетании с CSS, это было бы что-то вроде:

function highlightResult($str, $keyword) {
    return str_replace($keyword, '<strong class="destaque">' . $keyword . '</strong>', $str);
}

str_replace поисках всех местах, со слов сослана в пределах string и добавляет тег <strong class="destaque">, таким образом, мы сможем применить эффект с помощью CSS

Ниже приведен пример использования:

<?php
function highlightResult($str, $keyword) {
    return str_replace($keyword, '<strong class="destaque">' . $keyword . '</strong>');
}

if (isset($_GET['consulta'])) {//Presumindo que o nome da variável seja consulta
    $consulta = $_GET['consulta'];
    $sth = $dbh->prepare('
        SELECT * FROM tabela WHERE NOME LIKE ? OR EMAIL LIKE ?
    ');
    $busca = array('%' . $consulta . '%', '%' . $consulta . '%');
    $sth->execute($busca);

    while ($linha = $sth->fetch(PDO::FETCH_ASSOC)) {
        echo '<tr class="odd gradeX">';
        echo '<td>',  highlightResult($linha['NOME'], $consulta), '</td>'; //Adiciona efeito de destaque na primeira coluna
        echo '<td>',  highlightResult($linha['EMAIL'], $consulta) '</td>'; //Adiciona efeito de destaque na segunda coluna
        echo '<td>',  $linha['LOGIN'], '</td>';
        echo '<td>',  $linha['DT_NASCIMENTO'], '</td>';
        echo '<td>',  $linha['DT_ULTIMOACESSO'], '</td>';
        echo '<td>',  $linha['IP'], '</td>';
        echo '</td>';
    }
} else {
    ...
}

CSS должно быть что-то вроде (изменить по вашему необходимости):

strong.destaque {/*Strong já possui um efeito parecido com o negrito*/
   color: red; /*modifique a cor conforme necessário*/
}
 6
Author: Guilherme Nascimento, 2014-12-29 19:59:47