0

以下代码旨在使用 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;
}

?>

我的困惑源于实际循环表的“单词”列的值作为第二个字符串 in levenshtein 函数的变量的机制。

最终,我想将该列中的值循环到 $title 变量中,并回显产生小于 4 的 levenshtein 距离的值,但我似乎无法返回任何输出。

4

1 回答 1

1

在您的示例中使用while循环是正确的。但是你正在混合mysqlmysqli扩展:

$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;
    }
}
于 2013-06-02T23:00:21.577 回答