2012-01-29 11 views
0

これは問題があることである私のjqueryのUIのオートコンプリートの入力JSONファイルは一つだけ、各

$term = trim(strip_tags($_GET['term']));//retrieve the search term that autocomplete sends 

$qstring = "SELECT nombre as value FROM ingredientes WHERE nombre LIKE '%".$term."%'"; 
$result = mysql_query($qstring);//query the database for entries containing the term 

while ($row = mysql_fetch_array($result,MYSQL_ASSOC))//loop through the retrieved values 
{ 
    $row['value']=htmlentities(stripslashes($row['value'])); 
    //$row['id']=(int)$row['id']; 
    $row_set[] = $row;//build an array 
} 
echo json_encode($row_set);//format the array into json data 

のソースファイルである私のjson.phpのクエリ部分でいるので、省略はmysqlのクエリで値を繰り返し私の返品結果を次のようにファイルします:

[{"value":"one"},{"value":"one"},{"value":"ones"},{"value":"ona"}] 

したがって、この単語は2回提示されます。どうすればそれを防ぐことができますか?

答えて

1
$qstring = "SELECT DISTINCT nombre as value 
    FROM ingredientes 
    WHERE nombre LIKE '%".$term."%'"; 

それとも

$qstring = "SELECT nombre as value 
    FROM ingredientes 
    WHERE nombre LIKE '%".$term."%' 
    GROUP BY nombre"; 

...しかし

+0

感謝をmysql_real_escape_stringを使用しています!私はその質問の一部ではないことを知っていますが、どのように私はそれらを単語一致の学年で注文できますか? –

+0

「単語一致グレード」を定義しますか? 'ORDER BY nombre = '$ term' DESC、nombre LIKE '%$ term' DESC、LENGHT(nombre)ASC、nombre ASC'のようなもの? – Wrikken

+0

それは仕事に代わるものですか?それは結果を返しません..私は最も似た言葉を最初に表示することを意味する(またはオートコンプリートfeautreのその仕事ですか?) –