Wordpress MySQL 查询结果 - 如何突出显示在显示中找到的字符串 Table
Wordpress MySQL Query Results - How to Highlight Strings Found in Displayed Table
我创建了一个功能正常的 WordPress 页面,其中包含两个搜索框(以及它们之间的一对 and/or 按钮),用于查询 sql 数据库和 returns 两列 table 行包含一个(或两个,视情况而定)搜索字符串($search 和 $search2),然后在结果超过 100 行时分页。我已经尝试了三种不同的方法来在 table 中突出显示这些字符串,但无法正常工作。所以我非常感谢一些帮助。 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";
}
如果我可以将突出显示限制在第二列 ("EVENTS") 上,那将很有帮助,但这远不如让它正常工作重要。而且,是的,我会将代码升级到 mysqli 并在完成之前转义查询字符串。一如既往,感谢这个伟大社区的所有人。
为什么不使用一些高亮js库?
mark.js 开箱即用地支持在表格中突出显示
$("table tr td:nth-child(1)").mark('keyword');
我创建了一个功能正常的 WordPress 页面,其中包含两个搜索框(以及它们之间的一对 and/or 按钮),用于查询 sql 数据库和 returns 两列 table 行包含一个(或两个,视情况而定)搜索字符串($search 和 $search2),然后在结果超过 100 行时分页。我已经尝试了三种不同的方法来在 table 中突出显示这些字符串,但无法正常工作。所以我非常感谢一些帮助。 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";
}
如果我可以将突出显示限制在第二列 ("EVENTS") 上,那将很有帮助,但这远不如让它正常工作重要。而且,是的,我会将代码升级到 mysqli 并在完成之前转义查询字符串。一如既往,感谢这个伟大社区的所有人。
为什么不使用一些高亮js库?
mark.js 开箱即用地支持在表格中突出显示
$("table tr td:nth-child(1)").mark('keyword');