gpt4 book ai didi

php - 使用 php 列表加速 jquery 自动完成

转载 作者:行者123 更新时间:2023-11-29 04:50:24 24 4
gpt4 key购买 nike

您好,我遇到了一个问题。我已经实现了 jquery 著名的自动完成功能,并且正在从数据库中创建一个列表(相当长)以输出到自动完成字段中。但是在列表中找到正确的值需要很长时间。有谁知道我可以加快速度的方法吗???这是我的 jquery:

<script>
$(function() {function log( message ) {$( "#destId" ).val( message );}
$( "#destinations" ).autocomplete({
source: "destinos.php",
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"" + ui.item.id :
"" + this.value );}});});
</script>

这是 destinos.php:

//connect to database
include 'php/dbconn.php';
$term = trim(strip_tags($_GET['term']));//retrieve the search term that autocomplete sends

$qstring = "SELECT Destination as value, DestinationId as id FROM DestinationId WHERE Destination LIKE '%".$term."%'";
//query the database for entries containing the term
$result = mysql_query($qstring);
//loop through the retrieved values
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
$row['value']=htmlentities(stripslashes($row['value']));
$row['id']=htmlentities(stripslashes($row['id']));
$row_set[] = $row;//build an array
}
echo json_encode($row_set);//format the array into json data

任何帮助将不胜感激!

最佳答案

您很可能需要加快数据库查询。为此,您必须做几件事。

  1. 确保您的 Destination 字段上有索引。
  2. 除非您绝对必须从字符串的中间开始匹配,否则请从 LIKE 查询中删除前导 % 以启用要使用的索引。 MySQL 不能有效地使用前导通配符的索引。
  3. 如果您必须保留前导 %,则在您的 jQuery 中将 minLength 设置为 3。这将允许 MySQL 对该模式使用优化算法。

来源:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

关于php - 使用 php 列表加速 jquery 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12377876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com