2009-04-28 3 views
0

내 웹 사이트에서 검색 기능을 구현하려고합니다. 나는 다음과 같은 유형의 데이터를 가지고있다.MYSQL/PHP의 데이터에서 일치하는 구문을 추출하는 방법은 무엇입니까?

Title    Descr 
-----    ----- 
World News   World news, news from across the world, all world news events covered 
World Sports   World sports news, for all of sports people, sports is a famous world 

는 지금은 사용자가 '세계 뉴스'를 검색하면 다음

World News (title) 
... all world news events covered ... (descr) 

는 기본적으로 나는 임의 기준으로 일부 문구를 표시하려면, 다음과 같이 표시됩니다 및 결과합니다. 사용자 후 "세계 뉴스"를 몇 번을 검색 할 때처럼 그는 위 때때로 다음과 같은 같은 결과를 얻을 것이다

World News (title) 
World news, news from across the world, ... (descr) 

우리가 만약이 아니 MySQL의 쿼리를 사용하여 기능의이 종류를 얻을, 또는 할 수있는 방법을 가르쳐주세요 mysql 질의를 통해 직접 가능하다면 PHP를 어떻게 사용 할 수 있는가?

Google은 때로 동일한 작업을 수행합니다. Google은 중간에 구문을 표시하고 때로는 시작 텍스트를 표시합니다.

감사합니다.

답변

-3

당신이 당신의 MySQL의 테이블에 저장된 제목과 설명이있는 경우,이 같은 시도 : 제목의 조건이 World news 일치

되는 곳

SELECT descr FROM yourTable WHERE title='World News' ORDER BY RAND() 

ORDER BY RAND() 조건이 무작위로 행 중 하나를 선택합니다을

+0

제 생각에는 당신이 제 질문을 올바르게 받아들이지 않는다고 생각합니다. 나는 임의의 행을 원하지 않는다. 특정 행의 무작위로 선택된 문구를 원합니다. – Prashant

1

당신이 원하는 것을 달성하기위한 MySQL 방법이 있는지 확실하지 않습니다. 나는 데이터베이스에서 필드를 끌어 다음 문구 랜덤 PHP의 폭발() 함수를 사용합니다 :

$desc_field_result = "World news, news from across the world, all world news events covered"; // The "Desc" field from your MySQL Query 

$desc_field_array = explode(",",$desc_field_result); 

$selected_desc = $desc_field_array[rand(0,sizeof($desc_field_array)-1)]; 

echo $selected_desc; 
0

구글은 단지 어떤 임의의 문장을 반환하지 않습니다. 검색 한 단어가 포함 된 스 니펫 (또는 두 개)을 반환합니다. MySQL은 그렇게 할 수 없습니다. 이 작업은 PHP에서 수동으로 수행해야합니다 (반환 된 데이터베이스 행의 키워드를 수동으로 검색하고 관련 스 니펫을 표시해야 함). 또는 Xapian, Sphinx 또는 Apache Lucene과 같이이를 수행 할 수있는 검색 엔진을 사용하십시오.

관련 문제