搜索数据库并显示结果,即使搜索字词拼写错误?

时间:2014-07-09 12:26:00

标签: php mysql forms where-clause

我在页面上有一个搜索功能,当用户在按下提交时键入搜索词时,它会检查数据库并在页面上显示数据库中的相应记录(它使用%Like%查询)。

然而,用户可能会拼错。无论如何它仍然可以搜索数据库并显示一些结果。即颜色存储在数据库中,但用户搜索颜色 - 我们是否可以更改WHERE子句以确保颜色被拉过来?

代码如下:

//// Contains the search term from the form  
$searched_club = $_GET['username'];(form is a PHP_SELF)

if($searched_club == ''){   
 $sql = "SELECT name, region FROM jos_users ORDER BY id DESC LIMIT 6";
}else{
 $sql = "SELECT name, region FROM jos_users WHERE name LIKE '%$searched_club%'";
}


$rsd = mysql_query($sql, $dbconn);
<table>
 while($rs = mysql_fetch_array($rsd)) {
   $name = $rs['name'];     
   $region = $rs['region'];     

 ?>     
            <tr>
                <td><?php 
                echo $name; 
                ?></td>
                <td><?php 
                echo $region; 
                ?></td>
            </tr>
            <?php
 } 
 ?>             
</table>

1 个答案:

答案 0 :(得分:3)

您可以使用the string function soundex()获取表示所提供字符串的一种可听模式的字符串。如果两个字符串不同但听起来相似,则它们应该产生相同的soundex()结果。字符串如下:

  • 答案

SELECT查询中,您可以使用快捷方式SOUNDS LIKE来比较两个字符串的soundex()

SELECT * FROM SomeTable WHERE SomeField SOUNDS LIKE SomeInputValue