搜索查询,大写字母

时间:2013-09-19 10:38:58

标签: php forms search

有人可以帮我解决这个问题。表格需要在大写字母和普通字母之间没有区别。

$raw_results = mysql_query("SELECT * FROM product
            WHERE (`naam` LIKE '%".$query."%') OR (`titel` LIKE '%".$query."%') OR (`druk` LIKE '%".$query."%')") or die(mysql_error());

charset是latin1_bin

4 个答案:

答案 0 :(得分:1)

您可以在mysql中使用UPPER

$raw_results = mysql_query("SELECT * FROM product
            WHERE (UPPER(naam) LIKE UPPER('%".$query."%')) OR (UPPER(titel) LIKE UPPER('%".$query."%')) OR (UPPER(druk) LIKE UPPER('%".$query."%'))") or die(mysql_error());

答案 1 :(得分:1)

这取决于你用于你的领域的整理。使用默认的latin1_general_ci排序规则(或类似的_ci - 结束)比较和字符串函数将对大小写不敏感。

所以,你有两个选择。首先 - 在PHP应用程序中使用strtolower()或在MySQL本身使用LOWER() - 将搜索字符串转换为小写(即使它们独立于原始内容情况)。其次 - 对包含数据的字段使用相应的排序规则。比我已经提供的更多信息 - 在case sensitivity manual page

答案 2 :(得分:0)

利用strtolower小写所有查询,然后进行搜索。

这样的东西所以它会匹配所有。

$query=strtolower($query);
$raw_results = mysql_query("SELECT * FROM product
            WHERE (`naam` LIKE '%".$query."%') OR (`titel` LIKE '%".$query."%') OR (`druk` LIKE '%".$query."%')") or die(mysql_error());

答案 3 :(得分:-3)

将all转换为小写或大写,它将起作用

$raw_results = mysql_query("SELECT * FROM product
            WHERE (strtolower(naam) LIKE '%".strtolower($query)."%') OR (strtolower(titel) LIKE '%".strtolower($query)."%') OR (strtolower(druk) LIKE '%".strtolower($query)."%')") or die(mysql_error());