Javascript php ajax自动完成-缺少精确匹配

Javascript php ajax自动完成-缺少精确匹配,javascript,php,mysql,ajax,autocomplete,Javascript,Php,Mysql,Ajax,Autocomplete,我有一个简单的PHP/MySQL/Ajax自动完成应用程序,它在用户键入时显示可用地址(就像谷歌地图一样) 应用程序运行正常并显示了结果 一旦用户开始添加属性号,结果就会发生变化(例如,260和269消失) 如果用户添加额外的数字,则只有一个结果(数字270-277消失) 在PMA中查询(记录存在) 这是我从数据库获取数据的代码 $search_param = "%{$this->text}%"; $query = 'SELECT * FROM (

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

应用程序运行正常并显示了结果

一旦用户开始添加属性号,结果就会发生变化(例如,260和269消失)

如果用户添加额外的数字,则只有一个结果(数字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);

            }
请尝试以下查询:

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

请在检查结果后删除限制条件请注意,SQL结果集按定义是无顺序的,这意味着
limit 5,5
没有确定的
ORDER by
条件是毫无意义的。。由于SQL中的分页/批处理始终需要确定性排序,因此没有例外。。。。。此外,您可能需要考虑使用<代码>全文> <代码>索引>代码>匹配(…)反对(…)<代码>,而不是像<代码> >“%.%”< /C>不能使用索引代码,只有答案被认为是低质量的:请确保提供代码的解释,以及它是如何解决问题的。如果你能在你的文章中添加更多的信息,这将有助于询问者和未来的读者。另请参见解释完全基于代码的答案: