我有一个名字字段。它由名字和姓氏组成。所以让我们说(Jerry Jones)是名字。当他们搜查杰瑞的时候,它还是出现了。但我想让它只进行精确搜索。他们必须放入(杰里·琼斯)...Reason,可能会有两个杰里,然后他们都会出现。或者在我的搜索表单中有一种方法可以告诉我你想要哪个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;
}
?>谢谢
发布于 2013-09-18 22:14:19
尝试:
mysql_query("SELECT * FROM member WHERE Name='$query'")这应该会产生一个精确的匹配,这就是我相信你想要的,可能会有一个意外的副作用,那就是太有限了。
发布于 2013-09-18 22:15:15
您的SQL语句不正确:如果您想准确地查询Jerry Jones,您应该这样做: SELECT * FROM members WHERE name = "$query“。
发布于 2013-09-18 22:33:51
尝试使用MATCH而不是LIKE
https://stackoverflow.com/questions/18874572
复制相似问题