显示类似的单词

时间:2013-12-08 13:45:42

标签: javascript php

我有一个包含2个字段的表,私人和个人姓名,我需要创建一个允许搜索此名称的搜索页面。问题是我需要检测拼写错误。

例如:搜索Jonh会找到John。

所以我试图用LIKE获得结果,然后将字符串拆分为字符并计算JS循环中相同的字母数量。因此,如果4个或更多字符相同,我打印字符串。但由于某些原因,这并不总是有效,也许有更好的方法来做到这一点?

SELECT first_name FROM Employees WHERE first_name like '%{$first_name}%'

然后JS:

var counted = 0;
var inputFromUser = "some input".split('');
var resultCharsArray = "<?php echo $result;?>".split('');
for (var i = 0; i < inputFromUser.length; i++) {
    if ($.inArray(inputFromUser[i],resultCharsArray) { counted++; }
}

if (counted >= 4) {
    console.log("<?php echo $result;?>");
}

1 个答案:

答案 0 :(得分:5)

是的,有更好的方法可以做到这一点。

您可以使用SOUNDS LIKE。然后你就不需要运行任何JS了。

SELECT first_name FROM Employees WHERE first_name SOUNDS LIKE 'Jonh'