2012-07-17 4 views
0

동일한 이름이나 분산을 포함하는 데이터베이스와 일치시키려는 문자열 (이름) 목록이 있습니다. 일치하려는 문자열 각각에 대해 데이터베이스를 쿼리 할 수 ​​있지만 데이터베이스가 수정 된 집합이므로 효율적이지 않습니다.문자열을 비교하고 PHP에서 제안을 생성하십시오.

PHP 내에서이 일치를 수행 할 수 있는지 궁금합니다. PHP에서 levenshtein 함수를 사용할 수 있지만 더 효율적인 것이 있는지 궁금합니다.

예를 들어 보겠습니다. 데이터베이스 (또는 작은 분산)에이 문자열이 있으면 왼쪽에있는 모든 문자열을보고 싶습니다. 각각의 옆에는 밀접하게 일치하는 옵션이 포함 된 풀다운 목록이 필요합니다.

  • 문자열 1 - 풀다운
  • 문자열 2 - 아래

이에 가장 좋은 방법은 무엇입니까 당겨 -

  • 문자열 3 풀다운? 약 500-1000 개의 문자열을 가지고 있는데,이를 위해 제안/풀다운 메뉴를 얻고 싶습니다. 종류와

    아마도 MySQL을의 전체 텍스트 검색 기능을 살펴 가지고

    랄프

  • +0

    우리에게 간단하고 짧은 당신이 가지고있는 예와 당신이 결과로 얻을 것입니다주세요. – Jocelyn

    +0

    예 : 문자열은 다음과 같습니다. 빅토리아, 제안 사항 : Hotel Victoria, Appartement Victoria. 희망이 도움이됩니다. – Ralf

    답변

    0

    을 간주한다. DevZone에 대한이 기사를 찾았습니다. http://devzone.zend.com/26/using-mysql-full-text-searching/

    +0

    이것이 가장 효과적인 방법이라고 생각하지 않습니다. 이것은 한 페이지에서 동일한 데이터 세트에 대해 500-1000 번 쿼리를 실행한다는 것을 의미하므로 유일한 차이점은 전체 텍스트 검색에서 검색하는 값이라는 점입니다. 더 빠르고 좋은 방법이 있습니까? – Ralf

    0

    클라이언트 쪽에서는 jQuery UI Autocomplete가 필요합니다. 필요에 맞게 구성하는 것이 매우 쉽지만 모든 문자열을 가져 와서 로컬 목록 인 jQuery 자동 완성 데이터 소스에 저장하는 쿼리를 하나만 사용하면됩니다.

    그러면 입력에 대해 onkeyup 이벤트를 등록 할 수 있으며 jQuery 플러그인은 기존 캐시 된 데이터 소스를 쿼리합니다 (서버에 대한 부담은 더 이상 발생하지 않음).

    를 체크 아웃 : http://jqueryui.com/autocomplete/

    관련 문제