2009-04-28 71 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。

谷歌有時做同樣的事情,谷歌顯示短語形式中間,有時它顯示的起始文本。

謝謝。

回答

-3

如果您有存儲在MySQL表的標題和描述,嘗試這樣的事情:

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

ORDER BY RAND()條件將隨機從各行的一個選擇,其中標題的條件是World news比賽

+0

我想你沒有正確地得到我的問題。我不想隨機行。我想要從特定行中隨機選擇的短語。 – Prashant 2009-04-29 06:29:44

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)。