我有一个包含两个字段的表,私有和个人名称,我需要创建一个允许搜索这些名称的搜索页面。问题是我也需要检测打字错误。
例如:搜索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;?>");
}
是的,有更好的方法。
你可以使用SOUNDS LIKE。然后你就不需要运行任何JS了。
SELECT first_name FROM Employees WHERE first_name SOUNDS LIKE 'Jonh'