使用PHP进行产品搜索

时间:2015-12-22 11:24:47

标签: php mysql search shop

我正在为onlineshop寻找产品搜索功能。这家商店有3500件商品。这些项目可以在mysql数据库或文件中找到。我想获得最符合搜索条件的产品。搜索词应与产品名称进行比较。

因为搜索功能是onlineshop最重要的部分之一,我正在寻找一个非常有效的解决方案。有人知道一个易于实现的解决方案吗?它不需要是免费的。

更新:

我到目前为止尝试的是将该术语与产品名称进行比较。首先,我正在寻找这个术语是否可以找到1on1。之后我会在术语中使用单个单词并检查它们是否可以在产品名称中找到。这有效,但不够准确。

3 个答案:

答案 0 :(得分:1)

你说你想要一个简单的解决方案,但你已经注意到了问题。

尝试类似:

http://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html

我认为这比使用LIKE要复杂一些,但结果要好几英里。

如果你需要更好,那么我想你需要重新考虑只搜索愚蠢的标签,你需要开始解决如何允许用户过滤你的数据。

e.g。是“佳能5D MK III”镜头还是相机?

这些搜索在处理方面变得昂贵,为什么允许某人使用“佳能”这个词搜索您的数据库,可能会回收数百个结果,而不会询问他们是在寻找相机还是镜头?

能够允许这种过滤会表明您的数据库有列可以让您从镜头中分离所有镜头。

因此,搜索很好,但过滤描述每一行的元数据会更好,如果您还没有这样做,那么您可以考虑启动此过程。我建议您获得的收益远远超过在您的网站上提供搜索。

答案 1 :(得分:0)

这就是您运行查询并打印产品信息的方式。 当然,你需要让它更好看,因为有更多列。

$res = mysqli_query($connection ,"SELECT * FROM `products` WHERE productname like '%xxx%'");

while($row = mysqli_fetch_array($res))
{
     echo $row['productname'] . '<br>';
}

答案 2 :(得分:-1)

如果您至少熟悉php并知道如何查询数据库,我建议您使用此文档,最终您将知道如何处理它。

http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html

简而言之,LIKE就像比较运算符,只是按模式匹配。在你的例子中,让我们说productname LIKE“%searchterm%”。

我希望这可以帮到你。此致