循环MySQL列值作为变量


Loop MySQL column values as variable

下面的代码打算使用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循环是正确的。但是你把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;
    }
}