我正在尝试找出使用levenshtein()
in的“最佳”选项PHP
。
当用户将新客户输入数据库时,我正在使用 PDO 语句。
我想要做的是在添加新客户之前进行查询搜索,看看该客户是否已经在数据库中,以避免可能的重复条目。我不能使用MATCH/AGAINST
,因为客户可能在任何时候都输入了不同的内容。
这将根据数据库检查名字....
$input1 = $_POST['FIRSTNAME'];
$result = array();
$count=1;
$find = $dbh->query('SELECT BillingFirstName FROM Customers');
while ($row = $find->fetch (PDO::FETCH_ASSOC))
{
$fn = $row['BillingFirstName'];
array_push($result, $fn);
}
foreach ($result as $word) {
echo $word.'<br>';
$shortest = -1;
$lev = levenshtein($input1, $word);
if ($lev == 0) {
$closest = $word;
$shortest = 0;
break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest = $word;
$shortest = $lev;
}
}
echo "Input word: $input1\n";
if ($shortest == 0) {
echo "Exact match found: $closest\n";
} else {
echo "Did you mean: $closest?\n";
}
我将如何添加其他详细信息,例如姓氏、地址、州、邮编。
我什至可以添加更多,还是需要创建数组并将其与地址的每个部分循环?