我正在修改 dolibarr 中的代码,并且在使用 WYSIG 编辑器(记录 html 文本)搜索产品时遇到了问题。搜索包含多个单词的描述在 a 之后
(可能是所有标签)或文本的开头不起作用,第一个单词不会返回描述。另外,“galvanisé”与“é”一起使用,但在“d'options”中与引号一起使用。见下面的例子:
我尝试使用 htmlentities 并包含标签的结束或开始(见下文)。
说明 :
过滤标准 avec tout un tas d'options 900x400x116
Nom 22
EN779-2002 acier
galvanisé
for( $i=0 ; $i < sizeof($tabMots) ; $i++) {
if($i == 0) {
if(is_numeric($tabMots[$i]))
$sql.= ' WHERE (p.description LIKE \'% '.$tabMots[0].' %\' OR p.description LIKE \'%>'.$tabMots[0].' %\' OR p.description LIKE \'%>'.$tabMots[0].'<%\' OR p.description LIKE \'% '.$tabMots[0].'<%\' )';
else
$sql.= ' WHERE (p.description LIKE \'% '.$tabMots[0].'%\' OR p.description LIKE \'% '.htmlentities($tabMots[0]).'%\' OR p.description LIKE \'%>'.$tabMots[0].'%\' OR p.description LIKE \'%>'.htmlentities($tabMots[0]).'%\' )';
} else {
if(is_numeric($tabMots[$i])) {
$sql.= ' AND (p.description LIKE \'% '.$tabMots[$i].' %\' OR p.description LIKE \'%>'.$tabMots[$i].'%\' OR p.description LIKE \'%>'.$tabMots[$i].' %\' OR p.description LIKE \'%>'.$tabMots[$i].'<%\' OR p.description LIKE \'% '.$tabMots[$i].'<%\' )';
} else {
$sql.= ' AND (p.description LIKE \'% '.$tabMots[$i].'%\' OR p.description LIKE \'% '.htmlentities($tabMots[$i]).'%\' OR p.description LIKE \'%>'.$tabMots[$i].'%\' OR p.description LIKE \'%>'.htmlentities($tabMots[$i]).'%\' )';
}
}
}
我想避免添加纯文本字段,以免修改 dolibarr 数据库。谢谢。
编辑:建议的答案不好,因为问题是文本描述的文本格式 HTML,而不是搜索条件。
缥缈止盈
叮当猫咪