Javascript 如何搜索大写和小写html实体?

Javascript 如何搜索大写和小写html实体?,javascript,php,mysql,Javascript,Php,Mysql,我有utf8字符保存为html实体在我的数据库中,我有困难搜索他们 这里有一个例子,我们搜索:Öregapám in database it looks like this: ÖRegapám 问题是:用户搜索“Öregapám”,他没有得到任何结果,但如果用户搜索“Öregapám”,他就会得到结果 $searchable = sql_escape($conn, $_GET['s']); $search = convert($searchable); c

我有utf8字符保存为html实体在我的数据库中,我有困难搜索他们

这里有一个例子,我们搜索:Öregapám

in database it looks like this: ÖRegapám
问题是:用户搜索“Öregapám”,他没有得到任何结果,但如果用户搜索“Öregapám”,他就会得到结果

$searchable = sql_escape($conn, $_GET['s']);
$search = convert($searchable);
convert函数将utf8字符转换为实体,如下所示:

$text = str_replace("Ö","Ö",$text);
$text = str_replace("ö","ö",$text);
$text = str_replace("Á","Á",$text);
$text = str_replace("á","á",$text);
...
现在查询:

$query = "SELECT * FROM users WHERE deleted=0 and name LIKE '%".$search."%' ORDER BY name ASC";
你现在可以看到问题了

Öregapám --> ÖRegap'ám (this matches)

öregapám --> öRegap'ám (this doesn't)
我怎样才能做到,当用户键入utf8字符时,它同时搜索大写和小写字符

我试过这个:

$search2 = mb_strtolower(html_entity_decode($searchable ,ENT_COMPAT|ENT_HTML401,'UTF-8'),'UTF-8' );
$search3 = mb_strtoupper(html_entity_decode($searchable ,ENT_COMPAT|ENT_HTML401,'UTF-8'),'UTF-8' );
$search2 = convert($search2);
$search3 = convert($search3);

$query = "SELECT * FROM users WHERE deleted=0 and
(name LIKE '%".$search2."%' OR name LIKE '%".$search3 ."%') ORDER BY name ASC";
但这也不起作用,因为它将所有内容都转换为小写或大写,输入“Öregapám”甚至不会给出结果

because it search for "öregapám" (öRegapám)
and "ÖREGAPÁM" (ÖREGAPÁM)
instead of ÖRegapám.

查询中的
LIKE
表达式之间的
应该是
。您还有
'%“%$search.”%'
它应该是
'%“%$search2.”%'
$query=“从删除=0且名称类似“%”“%$search.”的用户中选择*,或名称类似“%”“%$search3.”%“按名称排序ASC”
您检查了大写和小写,而应该只查找大写或小写。这仍然不能解决我的问题,问题仍然与上面最后3行中所述的相同。