2012-08-30 2 views
0

PHP를 사용하여 ajax 검색 기능을 작성하고 있습니다. 그것은 PHP MYSQL LIKE 설명에 여러 단어가 일치합니다.

나는 사용자 검색이 전원 코드 녹색에 대한 어떤 결과를 보여주는이없는

POWER CORD C13-C14 SVT 250V 10AMP GREEN JACKET 8 FEET 

아래에 있지만 때와 같은 제품 설명이 올바르게 작동하지만 필터링 된 결과에 약간의 문제가 있습니다. 나는 위의 단어들 때문에 같은 순서가 아니라고 생각한다. 여기

내 SQL 코드입니다 - $의 QR 사용자의 검색 단어입니다

SELECT 
     product_name,product_desc 
     FROM j25_virtuemart_products,j25_virtuemart_products_en_gb 
     WHERE   
     j25_virtuemart_products.virtuemart_product_id =j25_virtuemart_products_en_gb.virtuemart_product_id 
     AND j25_virtuemart_products.published=1 
     AND (product_name LIKE '%$qr' OR product_desc LIKE '%$qr 

때 내가 전원 코드 C13-C14 SVT 250V 10AMP 그린 재킷 (8)를받을 필요가 전원 코드 녹색에 대한 사용자 검색 FEET을 제안합니다. 누구든지 그 종류의 결과를 얻기 위해 쿼리를 작성하는 방법을 말해 줄 수 있습니다. 고맙습니다.

답변

3

전체 텍스트 검색을 사용해야합니다. 그것을 사용하기 전에 그것은 전체 텍스트를 지원하는 경우 데이터베이스 엔진을 확인하십시오. 또한 전체 텍스트를 지원해야하는 제목과 설명 필드를 색인화해야합니다. MySQL은 그것을 사용하지를 더 이상 사용되지 않습니다

+0

이에 대한 많은 j25_virtuemart_products_en_gb \t로부터 \t 제품 _, product_desc \t을 선택 WHERE MATCH (product_desc, PRODUCT_NAME)에 대한 (' ". QR $."') –

5

LIKE 연산자는 여기에 도움이되지 않습니다. FULLTEXT searching을 조사해야합니다. MyISAM (drawbacks)을 사용하기를 꺼려한다면 Sphinx과 같은 대안을 고려해 볼 수 있습니다.

+0

일부 샘플이 있습니까 :) –

+0

@SunethKalhara 내 게시물에 추가 한 링크 참조. 그것은 당신을 시작해야합니다. 예제에 사용 된 기본 mysql 함수 대신 PDO 또는 MySQLi 확장을 사용해야합니다. 잘 .. 덕분에 작업 –