首页 > 解决方案 > php ajax 自动完成 - 缺少完全匹配

问题描述

我有一个简单的 PHP/MySQL/Ajax 自动完成应用程序,它在用户输入时显示可用地址(就像谷歌地图一样)。

应用程序工作并显示结果 在此处输入图像描述

一旦用户开始添加属性编号,结果就会发生变化(例如 260 和 269 消失了) 在此处输入图像描述

如果用户添加额外的数字,则只有 1 个结果(数字 270-277 消失了) 在此处输入图像描述

PMA 中的查询(有记录) 在此处输入图像描述

这是我从数据库获取数据的代码

        $search_param = "%{$this->text}%";

        $query = 'SELECT * FROM (SELECT * FROM '.$this->table.' WHERE address like ?) AS x LIMIT 5,5';

        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(1,$search_param);
        $stmt->execute();

然后将结果保存在数组中

            while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
                extract($row);
                $address_item = array(
                    'address' => $address
                );

            //Push the data
            array_push($address_arr['data'], $address_item);

            }

标签: javascriptphpmysqlajaxautocomplete

解决方案


试试这个查询:

$query = 'SELECT * FROM (SELECT * FROM '.$this->table.' WHERE address like ?) AS x LIMIT 0,5';

推荐阅读