我想按字母顺序对自动完成的建议进行排序。
现在它看起来像这样:http://i.imgur.com/EevFyv2.png
如果我输入字母C,我想显示如下的标签建议:
代码:
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT * FROM autocomplete WHERE name LIKE '%$text%' ORDER BY name ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';
echo $json;
我希望有人能帮忙,谢谢。
发布于 2015-04-24 08:43:08
你需要
SELECT *
FROM autocomplete
WHERE name LIKE '%$text%'
ORDER BY (name LIKE '$text%') DESC,
name ASC
第一个order子句是一个布尔值,如果名称以$text
开头,则为0
,所以当您按DESC
顺序排序时,以$text
开头的值将移到列表的前面(其他地方只包含$text
的值将移到末尾)。然后,第二个子句按字母顺序对两个“子列表”进行排序。
https://stackoverflow.com/questions/29842531
复制相似问题