2011-02-13 2 views
2

,PHP는 MySQL의 JQuery와 AJAX 자동 완성 대소 문자 구분 내 PHP 스크립트에서

$names = $_GET['part']; 
$result = mysql_query("SELECT * FROM namestable where names LIKE'%$names%' LIMIT 10"); 
while ($row = mysql_fetch_assoc($result)) { 
     $colors[]=$row['publishers']; 
} 

검사를하고 잘 작동합니다.

하지만 내 테이블을 가정 내가 Alfr를 입력하고 당신은 대소 문자를 구분 데이터 정렬을 사용하는 경우 내가 alfr

답변

1

당신이 작동 제공 한 예제를 입력하면 나타나지 않는 경우 이름 알프레드, 제안에만 나타납니다있다 utf8_general_ci입니다. (자세한 내용은 MySQL의 Character Set Support 매뉴얼 섹션을 참조하십시오.) 또한

, 다음과 같이 간단하게 LOWER 기능을 사용할 수 있습니다

$names = strtolower(mysql_real_escape_string($_GET['part'])); 
$result = mysql_query("SELECT * FROM namestable WHERE names LIKE LOWER('%$names%') LIMIT 10"); 

을 덧붙여, 당신은 간단한 경우 변경을 넘어 차이를 잡으려고 시도하는 경우, MySQL의 SOUNDEX 함수를 사용하여 유사하게 들리는 문자열을 찾아서 찾을 수도 있습니다.

덧붙여서, $ names 변수에 mysql_real_escape_string을 사용하거나 mysqli 또는 PDO 인터페이스를 통해 준비된 구문을 사용해야합니다.

+0

그래서 코드에서 수정해야 할 부분을 제안 해 주시겠습니까 ?? –

+0

문서에서 soundex에서 str의 모든 비 영문자가 무시됩니다. 숫자도 포함하고 싶습니다. –

+0

@blasteralfred 간단한 해결책으로 답변을 업데이트했습니다. 비슷한 음향의 단어를 비교하기 만한다면 soundex라고 말했듯이 내가 언급 한 다른 해결책이 더 적절할 것입니다. –