使用 mysql php 搜索和匹配单词


Searching and Matching word with mysql php

我正在尝试将搜索查询的单词与sql数据库中的表匹配,但我没有这样做,请告诉我该怎么办。

谢谢
mysql table 'mytable'
ID | words
0  | cars 
1  | blue car
2  | red 
3  | green car
4  | tank
5  | car

Mysql 查询

$query = "Select * from `mytable`";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
{
$w = $row['words'];
$i =  " ".$w." " ; 
}

搜索词

$search = 'red car';

与数据库匹配

$mywords = split(" ",$i); 
$split_strings = preg_split('/[' 'n',]+/', $search);
$result = array_intersect($split_strings, $mywords);
if(!empty($result))
{ 
echo 'Matched';
}
else {
echo 'Not Matched';
}

我希望它的结果是"匹配",但它呼应"不匹配"

我已经运行了这段代码,我遇到的唯一问题是拆分函数,因为它已被弃用。 所以我改变了

$mywords = split(" ",$i);

$mywords = preg_split('/[' 'n',]+/',$i);

修复了阵列问题

  $data=array();
    while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
    {
    $w = $row['words'];
    $i =  " ".$w." " ;
    $data[]=$i; 
    }
 for($i=0;$i<sizeof($data);$i++)
{   
$mywords=preg_split('/[' 'n',]+/', $data[$i]);
$result = array_intersect($mywords,$search);
   if($result)
   {
      echo "Matched";
      break;
   }
}
if(!$result)
   {
     echo "No matched";
   }