2013-06-02 74 views
0

下面的代碼打算使用的Levenshtein()在MySQL表的列來比較用戶輸入字的值:環路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

我不明白你的問題。 「while」或「for」並不重要。如果你想過早退出,使用'break;'。 – Kermit

回答

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

謝謝;這澄清了一些事情,但是現在我收到了500錯誤,所以至少現在我有一些想法。 –

+0

不客氣。 500應該有其他原因 – hek2mgl