Я использовал ниже, чтобы решить свою проблему. Сначала я создал временную таблицу и вставил максимальное значение rev на уникальный идентификатор.
CREATE TABLE #temp1
(
id varchar(20)
, rev int
)
INSERT INTO #temp1
SELECT a.id, MAX(a.rev) as rev
FROM
(
SELECT id, content, SUM(rev) as rev
FROM YourTable
GROUP BY id, content
) as a
GROUP BY a.id
ORDER BY a.id
Затем я присоединил эти максимальные значения (# temp1) ко всем возможным комбинациям id / content. Делая это, я, естественно, отфильтровываю не максимальные комбинации id / content, и оставляю их только с максимальными значениями rev для каждого.
SELECT a.id, a.rev, content
FROM #temp1 as a
LEFT JOIN
(
SELECT id, content, SUM(rev) as rev
FROM YourTable
GROUP BY id, content
) as b on a.id = b.id and a.rev = b.rev
GROUP BY a.id, a.rev, b.content
ORDER BY a.id
Взгляните на документацию jquery ui autocomplete . JSON, который вы возвращаете, не соответствует тому, что ищет автозаполнение. Возвращаемый объект должен иметь свойства с именем label или value (или оба).
Вы можете попробовать следующие опции:
Измените возвращаемый JSON, чтобы включить свойства метки / значения, такие как:
[{"label":"Sin City"}]
Из примеров также, похоже, используется свойство id. Я считаю, что вышеизложенное является минимальным требованием для автозаполнения для отображения списка значений. Я думаю, вы также можете вернуть массив строк, и он будет отображать его точно так же, как указано выше.
[ "Sin City", "Etc" ]
Изменить private _renderItem для автозаполнения для использования ваших пользовательских свойств, как показано в примере автозаполнения (untested):
$( "#project" ).autocomplete({
source: "./search.php",
minLength: 3
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( item.Title )
.appendTo( ul );
};
Это немного более гибкое, но гораздо более уродливое imho.
Я собирался сказать это, всегда санируйте пользовательские входы.
Сложно сказать, так как я никогда не использовал автозаполнение jQuery, но я думаю, что вы должны настроить значение «#auto». Что-то вроде этого: $ ('# auto'). Val (). Autocomplet
@Shaun Спасибо, иногда вам просто нужно, чтобы кто-то указал на очевидное. Я, наконец, получил его, чтобы работать
include "db_connect.php";
$search = protect($_GET['term']);
$result = mysql_query("SELECT Title FROM `movie` WHERE `Title` LIKE '%$search%' ORDER BY Title ASC") or die('Something went wrong');
$json = '[';
$first = true;
while ($row = mysql_fetch_assoc($result))
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['Title'].'"}';
}
$json .= ']';
echo $json;
atleast запускать mysql_real_escape_string () в $ search перед помещением его в SQL-запрос.
Источник: бит в вашем javascript, вероятно, испортил его. Вы должны удалить. если «search.php» находится в «верхней части» каталога documentroot.
Firebug, вероятно, поможет вам взять пик и в сообщении.