以下代码旨在使用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变量中,并回显产生levenshtein距离小于4的值,但我似乎无法返回任何输出。
答案 0 :(得分:1)
在您的示例中使用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;
}
}