PHP SQL 查询自动完成

标签 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";

你有什么建议吗?

提前发送。

最佳答案

在查询中使用 OR 而不是 AND:

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

关于PHP SQL 查询自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41090874/

相关文章:

javascript - jQuery 验证至少选择一个复选框

mysql - 外键和复合 PK

php - Yii 一个 actionIndex() 用于数据库中的 4 个表

sql - MySQL:一位的最小数据类型

sql server 连接同一个表

php - 连接数据库中的相同数组(数字)

javascript - 在不使用查询字符串的情况下将日期从 JavaScript 发送到 PHP

php - 为什么传递给 PHP 的 cookie 或数据字符串中缺少 "+"个字符,以及如何更正此问题

php - mysql 日期比较查询给出错误结果

php mysql 选择列并与不同表中的3个值进行比较