【问题标题】:How to fetch results from a database while I'm writing?我在写作时如何从数据库中获取结果?
【发布时间】:2019-06-29 23:43:20
【问题描述】:

我们如何在编写的同时从数据库中获取结果?

假设我在名称字段中输入Ja,然后下拉选择框以获取数据库中以它开头的所有名称。

喜欢:

James
Jay
Jared

然后我再输入一个字母,例如Jam,然后所有的名字都消失了,只剩下James

这个过程的名称是什么,我们如何做? 我只使用 PHP (PDO),我也必须使用 Java/jQuery 吗?

【问题讨论】:

  • 这只是一个下拉式自动完成字段。这通常使用 AJAX 完成。 jQuery 有很多方法可以做到这一点。
  • 例如:您在 input[type=text] 中键入文本,jQuery 将数据发送到您的数据库请求脚本,该脚本将结果以 json 格式返回给 jQuery,然后 jquery 将数据到输入字段正下方的行中。
  • 谢谢你们,在你们的回答之后,我搜索并找到了这个对我有很大帮助的视频:youtube.com/watch?v=_AqM9U3mi9A

标签: php autocomplete fetch


【解决方案1】:

您尝试构建的功能称为自动完成功能。

您需要编写一个 PHP 脚本(假设您正在编写一个纯 PHP 的 Web 应用程序),该脚本在输入框中输入键入的字符串并在您的数据库表上触发 SQL 'LIKE' 查询并返回列表的匹配结果。

在每个击键事件的用户界面上,您需要进行 ajax 调用,该调用将调用上述 PHP 脚本并获取名称列表。您现在可以在下拉列表中显示该列表,或者 jQuery UI 中有很多插件将为您创建此组件。

注意:如果您的表包含数千行,则使用 LIKE 查询自动完成字符串的成本可能会很高。如果这里的性能也是一个问题,那么请查看 Apache Solr 或 Elasticsearch 来索引您的数据并提供更复杂的自动完成结果。在这种情况下,您必须查询这些引擎并获取结果,而不是数据库。

但是,如果您不处理大量数据,您仍然可以使用 LIKE 查询。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 2012-05-23
相关资源
最近更新 更多