1

私は基本的な検索エンジンを持っています。1 つのスクリプトでは、HTML Web ページでスキャンされた単語を MYSQL テーブルに入力します。1 つの単語検索に基づいて、単語が Web ページに最も多く出現したときに結果をランク付けします。

しかし、複数の用語のクエリに取り組む必要があります。以下のクエリから複数の用語を検索する方法はありますか?

     $keyword = addslashes( $_POST['keyword'] );
     $results = addslashes( $_POST['results'] );

      /* Execute the query that performs the actual search in the DB: */

         $result = mysql_query(" SELECT p.page_url AS url,
                       COUNT(*) AS occurrences 
                       FROM page p, word w, occurrence o
                       WHERE p.page_id = o.page_id AND
                       w.word_id = o.word_id AND
                       w.word_word = \"$keyword\"
                       GROUP BY p.page_id
                       ORDER BY occurrences DESC
                       LIMIT $results" );
4

1 に答える 1

1

私がテストしていない可能な解決策。投稿キーワードを配列として送信するか、それらを個別に配列に収集します。

次に、最初に implode を使用して $keyword 配列を文字列に変換します

$keywords = implode(',', $_POST['keyword']);

と使用

w.word_word IN ($keywords)

または、内破をステートメントに入れます。

w.word_word IN (".implode(',', $keywords').")

いずれにせよ、あなたはmysqlの読書で終わる

w.word_word IN (keyword1, keyword2, keyword3 ...)

refrences: mysql テーブルから選択します WHERE field='$array'?

http://data.agaric.com/mysql-where-1-4-5-syntax

于 2012-11-03T18:11:49.160 に答える