用于自动完成的PHP SQL查询

时间:2016-12-11 20:36:05

标签: php mysql sql

我有一个带有属性名称表的MySqL数据库(可能超过一个单词),我想运行一个查询来获取用于自动填充字段的用户文本输入的结果。

我目前使用的查询是:

$query = "SELECT * FROM table WHERE LOWER(name) LIKE '%$value%' LIMIT 7";

但这还不够好。

我尝试拆分输入的$ value但由于某种原因无效:

$values = explode(" ", $value);

$str = "";
for($i = 0; $i < count($values); ++$i)
{
    if( $i == 0)
        $str .= "LOWER(name) LIKE '%&$values[$i]%' ";
    else
        $str .= "AND LOWER(name) LIKE '%$values[$i]%' ";
}

$query = "SELECT * FROM table WHERE ". $str . " LIMIT 7";

你有什么建议吗?

提前TX。

1 个答案:

答案 0 :(得分:0)

在您的查询中执行OR而不是AND

$str .= "OR LOWER(name) LIKE '%$values[$i]%' ";