2011-08-02 7 views
0

私はPHPを使用して私の会社のオンラインFAQアプリケーションを作成しています。PHPタグを検索するためのテキストフィールドの解析

FAQをデータベースに入力するには、質問、回答、および検索タグを入力する必要があります。

ユーザーは、質問をテキストフィールドに入力してシス​​テムを検索します。誰もが、SQL検索で使用するキーワードを見つけるために質問を分析できるPHP(またはJavaScript)モジュールを知っていますか?

たとえば、 "会社は何ですかインターネットポリシー"の太字の項目はキーワードとして識別され、データベース内で検索できますか?

答えて

0

特定の/選択したキーワードを検索に使用する場合は、ユーザーに検索タグを入力するように依頼するのは、私の意見では不要です。私は2つのテーブルを作成します:1つはあなたの選択したキーワード(インデックス付きのPRIMARYカラムのみを含みます - 私はkeywordと呼ぶでしょう)とあなたのFAQ情報をすべて格納するテーブルを作成します。 PHPは、キーワードテーブルを検索し、ユーザのテキスト文字列を使用します。

$string = $_POST['search_string']; 
$this->db->like('keyword',$string); 
$search = $this->db->get('keywords'); 
if($search->num_rows() > 0){ 
    $keyword = $search->keyword; 
    $this->db->like('faq_content',$keyword); 
    $search_faq = $this->db->get('faqs'); 
    foreach($search_faq->result() as $faq){ 
     echo "<h2>$faq_title</h2><p>$faq_content</p>"; 
    } 
} 

は、あなたがそれはあなたのデータベースの近くに手放す前に、あなたのSEARCH_STRING値をサニタイズを確認してください。

0

MySQLを想定すると、関連する列にFULLTEXTインデックスを追加し、natural language full-text searchを使用します。

あなたはその後、AGAINST句に入力されたタイトルを使用することができるはず、例えば

SELECT id, title, body, MATCH (title, body) AGAINST 
('What is the company internet policy') AS score 
FROM faq WHERE MATCH (title, body) AGAINST 
('What is the company internet policy'); 
関連する問題