gpt4 book ai didi

php - 高级搜索功能

转载 作者:行者123 更新时间:2023-11-30 23:41:21 24 4
gpt4 key购买 nike

我有一个网站,该网站具有基于 jQuery 的自动完成搜索功能,效果很好。

目前虽然我只有一个搜索框用于所有类别,但我想要的是有人能够输入,例如,dorian gray dvd(以任何顺序)将搜索dvd 类别中的 dorian gray。这将需要在服务器端使用一些魔法来确定是否有任何单词是类别关键字,然后以此来限制搜索。

在 PHP/MySQL 中执行此操作的最佳(和最快)方法是什么?

我目前有几个思路

  • 搜索类别匹配表和可能的顺序结果。
  • 或者将搜索词分解为数组并分别搜索匹配项的类别。
  • 我刚才的另一个想法是将类别标题连接到 DVD数据库中的标题和匹配反对那个,或类似的东西......但这在计算上听起来贵吗?

有什么建议吗?

最佳答案

就循环和代码行而言,您的第一个想法可能是最快的。展开搜索查询,包装新数组的每个部分以对其进行格式化,以便您可以将其内爆并将新字符串附加到您的 mysql 查询的末尾。

然后只需获取结果并将其附加到搜索查询中。为了节省空间,请在分类查询的同时设置搜索查询的格式。

$temp=explode(" ", $string);
foreach($temp as $key=>$var) {
$where[$key]=>"category='".mysql_real_escape_string($var)."'";
$where2[$var]=>"field like '%".mysql_real_escape_string($var)."%'"; //formating the second query at the same time
}
$result=mysql_query("SELECT name FROM categories WHERE ".implode(" OR ", $where));
$cat=mysql_fetch_object($result)->name;
unset($where2['cat']); //removing the category from the search
$where2=implode(" OR ", $where2);
$result=mysql_query("SELECT * FROM table WHERE ($where2) and category='$cat'");

关于php - 高级搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2760803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com