1

到目前为止,这是我的代码

    <form method="post" name="search">
      <input type="search" name="k" placeholder="Enter Keywords">
      <input type="submit" value="Search">
    </form>
    <?
$skw = $_POST['k'];
if(isset($_POST['k'])){
$connect = mysql_connect('*', '*', '*')or die('Could not execute command. Please contact a administrator.');
mysql_select_db('*')or die('No database');
$query = "SELECT * FROM *** WHERE items LIKE '%$skw%'";
$result = mysql_query($query)or die(mysql_error());
    echo "<table align=\"left\" border=\"1\" cellpadding=\"5\" cellspacing=\"3\">";
    echo "\"" . $skw . "\"";

        if(empty($result)){echo " Not Found!";}else{

            echo " Found In";

            while($row = mysql_fetch_array($result)){
            echo "<tr><td>";
            echo "<font color=\"#CC0000\">" . $row['tub_id'] . "</font>";
            echo "</td><td>";
            echo $row['items'];
            echo "</td></tr>";

}
echo "</table>";

}}?>

如何在结果中突出显示 $skw?我曾尝试使用 preg_replace,但我对 php 很陌生,无法让它工作。我知道我可以使用类来设置它的样式。感谢您的任何帮助。

4

2 回答 2

2

首先添加一个css高亮lightlight

.highlight{background-color: yellow; }

然后假设这$skw是搜索关键字,您将row['items'] 在您的 while 语句中搜索它

while($row = mysql_fetch_array($result)){
        echo "<tr><td>";
        echo "<font color=\"#CC0000\">" . $row['tub_id'] . "</font>";
        echo "</td><td>";
        $items = preg_replace("/" . $skw. "/", "<span class='highlight'>'" . $skw . "</span>",$row['items']);
        echo $items;
        echo "</td></tr>";

}

然后一些注意事项是:不要使用<font>标签。-_- 并且mysql_*已被弃用.. :D

于 2013-09-03T03:13:41.527 回答
0

你可以添加一个类

CSS 样式:

.hihglight{background-color: yellow;}

php代码:

echo "<span class='hihglight'>{$skw}</span>";

作为旁注:Mysql_* 扩展自 PHP 5.5.0 起已弃用,并将在未来删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

一个有用的链接为什么我不应该在 PHP 中使用 mysql_* 函数

于 2013-09-03T03:05:23.710 回答