0

我需要能够搜索并将不同的单词视为关键字而不是字符串。

实际上,如果我搜索“蓝灯”,“蓝白灯”或“蓝灯”的结果将不会出现。我想将空格视为关键字分隔符。考虑到我的实际代码,我们如何才能做到这一点?

$pdo2_where = " WHERE (" .$db_type_1_associations['nom_bot'] ." LIKE ? || " .$db_type_1_associations['id'] ." LIKE ? || " .$db_type_1_associations['nom_fr'] ." LIKE ? || " .$db_type_1_associations['description'] ." LIKE ? || " .$db_type_1_associations['commentaire_public'] ." LIKE ?)" .$pdo2_add_where_photos ;
$pdo2_execute = array (
'%' .htmlspecialchars(urldecode(trim($_GET['recherche']))) .'%',
'%' .htmlspecialchars(urldecode(trim($_GET['recherche']))) .'%',
'%' .htmlspecialchars(urldecode(trim($_GET['recherche']))) .'%',
'%' .htmlspecialchars(urldecode(trim($_GET['recherche']))) .'%',
'%' .htmlspecialchars(urldecode(trim($_GET['recherche']))) .'%'
); 

*也可以很好地分隔斜线、逗号和其他经典分隔符。

4

1 回答 1

1

这是考虑使用搜索引擎的好时机。或者如果可能的话,至少是全文索引。

您可以只使用 SQL 来执行此操作,但您的查询会变得更加复杂。您需要将搜索字符串拆分为空格,并为每个关键字和字段组合添加额外的 or 子句。

于 2013-01-14T22:05:37.210 回答