突出显示搜索中的多个关键字(PHP)

时间:2019-09-09 08:18:58

标签: php search

我正在使用以下代码突出显示搜索关键字:

<form method="post">  
    <input type="text" name="keyword" value="<?php if(isset($_GET["keyword"])) echo $_GET["keyword"]; ?>" /> 
    <input type="submit" name="submit" value="Search" />  
</form>  

<?php 
if(isset($_GET["keyword"]))  
{  
    $condition = '';  
    $query = explode(" ", $_GET["keyword"]);  
    foreach($query as $text)  {  $condition .= "name LIKE '%".mysqli_real_escape_string($conn, $text)."%' OR "; }  
    $condition = substr($condition, 0, -4);  
    $sql_query = "SELECT * FROM products WHERE " . $condition;  
    $result = mysqli_query($conn, $sql_query);  
    if(mysqli_num_rows($result) > 0)  
    {  
        while($row = mysqli_fetch_array($result))  
        {  
            echo ''.$row["name"].'';  
        }  
    }  
    else  {  echo '<label>Data not Found</label>';  }  
}  
?>

但是,这仅突出显示了一个“关键字”。

如果用户输入多个关键字,它将缩小搜索范围,但不会突出显示单词。如何突出显示多个单词?

1 个答案:

答案 0 :(得分:0)

对于多个具有like的搜索,应使用regexp

例如

SELECT * from products where name REGEXP 'apple|table';