WordPress MySQL Query Results — Как выделить строки, найденные в отображаемой таблице

Я создал работающую страницу WordPress с двумя полями поиска (и парой и / или кнопками между ними), которая запрашивает базу данных sql и возвращает таблицу из двух столбцов со строками, которые содержат один (или оба, в зависимости от обстоятельств) искомых строк ($ search и $ search2), а затем разбивает на страницы, когда результаты превышают 100 строк. Я пробовал три разных способа выделения этих строк в таблице, но не могу заставить их работать. Так что я очень признателен за помощь. Соответствующая часть кода php (для которой я использую плагин WordPress Insert PHP):

[insert_php]

* * * *

if ($andor == "and"){
$result = mysql_query("SELECT DATE(start_date), EVENT FROM {$table} WHERE EVENT REGEXP '$search'  >0 AND EVENT REGEXP '$search2' >0 LIMIT {$limits}");
}
else{
$result = mysql_query("SELECT DATE(start_date), EVENT FROM {$table} WHERE EVENT REGEXP '$search'  >0 OR EVENT REGEXP '$search2' >0 LIMIT {$limits}");
}
* * * *
while($row = mysql_fetch_row($result))
{
echo "<tr>";
foreach($row as $cell)
echo "<td>$cell</td>";
echo "</tr>\n";
}

[/insert_php]

Сначала я добавил функцию в файл functions.php и попытался вызвать ее, но не смог заставить ее работать

function highlight_word( $content, $word) {
$replace = '<span style="background-color: #FF0;">' . $word . '</span>';
$content = str_replace( $word, $replace, $content );
return $content;
};

Затем я попытался заменить строку в отдельном цикле while. Наконец, я попытался изменить существующий цикл while следующим образом:

while($row = mysql_fetch_row($result))
{
echo "<tr>";
foreach($row as $cell)
echo "<td>" . str_replace($search, '<span style="background-color: #FF0;">' . $search . '</span>', $cell) . "</td>";
echo "</tr>\n";
}

Было бы полезно, если бы я мог ограничить выделение только вторым столбцом («СОБЫТИЯ»), но это гораздо менее важно, чем просто заставить его работать. И, да, я обновлю код до mysqli и экранирую строки запроса перед завершением. Как всегда, спасибо всем в этом замечательном сообществе.

0

Решение

Почему бы вам не использовать какую-нибудь светлую библиотеку js?

mark.js поддерживает выделение в таблицах из коробки

$("table tr td:nth-child(1)").mark('keyword');

Проверьте этот пример

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]