-1

我正在输出搜索查询的结果,但由于某种原因,它不会输出多个结果。可能是因为我累了,但有人发现我犯的错误吗?

我想要做的就是使用搜索栏中输入的单词搜索我的数据库,并找到输入的所有匹配项或接近匹配项。

我错过了什么吗?

$search = $_POST['search'];

// We preform a bit of filtering 

$filtered = mysql_real_escape_string($search);

//Select what add to look for.
$ad_type = $_POST[''];

 //Now we search for our search term, in the field the user specified 
 $sql = "SELECT * FROM busadverts WHERE MATCH(advert_name, advert_description, advert_tags) AGAINST('". $filtered ."  IN BOOLEAN MODE')"; 

 $result = mysql_Query($sql) or die(mysql_error());
//And we display the results 

 while($row = mysql_fetch_array( $result )) 
 { 

 $adname = $row['advert_name'];
 $adimage = $row['advert_image'];
 $addesc = $row['advert_description'];
 $adurl = $row['advert_url'];

 $searchresult .= "<div style='width: 800px; height: 200px;'>
<div class='titleBar' style='text-align: center; background: #000; color: #fff;'>"
. $adname . "
</div>
<div class='advertimage' style='width: 150px; height: 150px; float: left; background: #111;text-align: center;'> 
<img src='" . $adimage . "' /> 
</div>
<div class='advertdescription' style='width: 635px; height: 150px; float: left;  background: #222;color: #fff; padding-left: 15px;'>Description: <br />"
. $addesc ." 
<br /><br /> Website link: <a href='" .$adurl."'>" 
. $adurl . "</a>
</div>

</div>"; 

} 

 //This counts the number or results - and if there wasn't any it gives them a little  message explaining that 
$anymatches=mysql_num_rows($result); 
if ($anymatches == 0) 
{ 
echo "Sorry, but we can not find an entry to match your query<br><br>"; 
} 



   mysql_free_result($result); 

//And we remind them what they searched for 
echo "<b>Results: </b> " .$search. "" ; 
echo $searchresult;

提前致谢。

4

1 回答 1

0

如果您想搜索包含test您应该*用作通配符的单词的任何内容

$sql = "SELECT * FROM busadverts WHERE MATCH(advert_name, advert_description, advert_tags) AGAINST('*". $filtered ."*'  IN BOOLEAN MODE)"; 

此外,看起来您的'撇号在该Against部分中已关闭。

于 2012-06-24T02:14:15.423 回答