0

我有一个名称字段。它带有名字和姓氏。所以让我们说(杰里琼斯)是名字。当他们搜索杰瑞时,它仍然会出现。但我只想让它精确搜索。他们必须加入(杰瑞琼斯)......原因是可能有两个杰瑞,他们都上来了。或者在我的搜索表单中是否有办法说出你想要哪个 Jerry 并给我他们的结果。然后,一旦他们选择了正确的,它就会重定向到带有结果的新页面?

这是表格

<form action="search.php" method="GET">
<input type="text" name="query" />
<input type="submit" value="Search" />
</form>

搜索

<?php
mysql_connect("localhost", "username", "password") or die("Error connecting to database: ".mysql_error());


mysql_select_db("ambassador") or die(mysql_error());


    $query = $_GET['query'];


$min_length = 3;


if(strlen($query) >= $min_length){ 

    $query = htmlspecialchars($query);


    $query = mysql_real_escape_string($query);


    $raw_results = mysql_query("SELECT * FROM member
        WHERE (`Name` LIKE '%".$query."%')") or die(mysql_error());



    if(mysql_num_rows($raw_results) > 0){ 

        while($results = mysql_fetch_array($raw_results)){



        }


    }
    else{ 
        echo "No results";
    }

}
else{ 
    echo "Minimum length is ".$min_length;
}
?>

谢谢

4

3 回答 3

1

尝试:

mysql_query("SELECT * FROM member WHERE Name='$query'")

这应该会产生一个完全匹配的结果,我相信你想要的可能会产生过于限制的意外副作用。

于 2013-09-18T14:14:18.870 回答
0

尝试使用MATCH而不是LIKE

于 2013-09-18T14:33:50.637 回答
0

您的 SQL 语句不正确:如果您想准确查询 Jerry Jones,您应该这样做:SELECT * FROM members WHERE name = "$query"。

于 2013-09-18T14:15:15.250 回答