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;
}

?>

私の混乱は、テーブルの「単語」列の値を、レーベンシュタイン関数の 2 番目の文字列の変数として実際にループするメカニズムに起因しています。

最終的に、その列の値を $title 変数にループし、4 未満のレーベンシュタイン距離を生成する値をエコーし​​たいのですが、出力を返すことができないようです。

4

1 に答える 1

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;
    }
}
于 2013-06-02T23:00:21.577 に答える