我正在尝试将搜索查询的单词与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";
}