下面的代码打算使用levenshtein()来比较用户输入的单词与MySQL表中某列的值:
$searched=$_POST['searched'];
$sql = "SELECT * FROM `word_list`;";
$result = mysqli_query($conn,$sql);
while($row=mysqli_fetch_assoc($result))
$title = $row['word'];
$sound = levenshtein($searched, $title);
if ($sound < 4) {
echo $title;
}
?>
我的困惑源于实际循环表的"word"列的值作为第二个字符串的变量传入levenshtein函数的机制。
最后,我想将该列的值循环到$title变量中,并回显产生小于4的水平距离的值,但我似乎无法返回任何输出。
在您的示例中使用while
循环是正确的。但是你把mysql
和mysqli
扩展名混在一起了:
$result = mysqli_query($conn,$sql);
...
while($row=mysql_fetch_assoc($result))
你必须用mysqli_fetch_assoc()
代替。
在while循环结束时,您还缺少关闭}
。完整的示例应该如下所示:
$searched = $_POST['searched'];
$sql = "SELECT * FROM `word_list`;";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result))
$title = $row['word'];
$sound = levenshtein($searched, $title);
if ($sound < 4) {
echo $title;
}
}