我已经创建了一个功能正常的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,并在结束之前转义查询字符串。一如既往,感谢这个伟大的社区中的所有人。
转载请注明出处:http://www.tochigihk.com/article/20230526/2354955.html