2012-11-21 2 views
0

내 데이터베이스에 avaible 결과를 표시하려면 jQuery UI 자동 완성 기능을 사용하고 있습니다. 내 웹 사이트는 부동산 목록 용이며 내 검색 양식에서 "Cities"라는 필드 아래에서 사용하고 있습니다. 따라서 같은 도시에 500 개의 부동산이 등록되어 있으면이 도시의 이름이 500 번 표시됩니다.jQuery UI 자동 완성이 유사한 결과를 표시하지 못하도록

동일한 결과를 한 번만 표시 할 수 있도록 차단할 수있는 방법이 있습니까? 내 자바 스크립트

<?php 
$mysqli = new mysqli('localhost', 'aliicomb_joombd', 'xxxxxxxx', 'aliicomb_joombd'); 
$text = $mysqli->real_escape_string($_GET['term']); 

$query = "SELECT field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC"; 
$result = $mysqli->query($query); 
$json = '['; 
$first = true; 
while($row = $result->fetch_assoc()) 
{ 
    if (!$first) { $json .= ','; } else { $first = false; } 
    $json .= '{"value":"'.$row['field_63'].'"}'; 
} 
$json .= ']'; 
echo $json; 
?> 

: 그리고 여기

내 PHP 파일입니다

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $('#field_63').autocomplete(
    { 
     source: "city.php", 
     minLength: 3 
    }); 

}); 

</script> 
+0

팁. [** json_encode **] (http://php.net/manual/en/function.json-encode.php) (직접 문제는 아닙니다.) – itachi

답변

0

이반 Hušnjak 당신이 중 하나를

$query = "SELECT DISTINCT field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC"; 

또는

$query = "SELECT TOP 1 field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC"; 
을 시도 할 수 있듯이

이 여러 행이있는 경우 field_63가

+0

도움을 주셔서 대단히 감사합니다! – mah2602

3

당신이 DISTINCT 사용하여 DB에서 고유 한 값을 가져올 수 있습니다 $ 텍스트 같은 곳 DISTINCT는 여전히 하나 개 이상의 결과를 반환 할 수 있습니다 알고 있어야 DB를에서 불과 한 결과를 반환합니다 귀하의 검색어에 대한 키워드 :

$query = "SELECT DISTINCT field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC"; 
+0

정말 고마워요! 그것은 문제를 해결했습니다. 아주 간단합니다. – mah2602

관련 문제