当用户搜索图书的标题时,我应该使用什么样的搜索算法来提供结果?
如果存在一本书应该返回标题,否则必须显示与其相近的书名。
第一种情况更容易搜索字符串。我需要如何解决大多数网站使用的第二种情况。
books表包含字段类别,类和标题。我已经尝试了下面的代码,当我给出确切的标题时,我得到的结果我希望系统给出密切相关的标题。
$title=isset($_GET['title'])?$_GET['title']:NULL;
//$code=isset($_GET['code'])?$_GET['code']:NULL;
$class=isset($_GET['class'])?$_GET['class']:NULL;
$cat=isset($_GET['category'])?$_GET['category']:NULL;
if(isset($title))
$qry="select * from books where quantity>0 and title='$title' ";
else{
$qry="select * from books where quantity>0 ";
if(isset($class)) $qry.=" and class='$class' ";
if(isset($cat)) $qry.=" and category='$cat' ";
}
答案 0 :(得分:1)
好吧,首先我建议使用预准备语句来避免通过当前代码注入SQL,但在SQL中使用LIKE运算符应该适用于第二种情况。
更改
`select * from books where quantity > 0 and title = '$title'`
到
`select * from books where quantity > 0 and title LIKE '%$title%'`
这样做还会检查单词周围是否缺少字母。因此,如果标题等于“兔子”,则“白兔”,“兔子”和“兔子”都将成为结果。
P.S。空白无需任何费用