ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して CMS で全文検索とキーワード クエリを開発する方法

PHP を使用して CMS で全文検索とキーワード クエリを開発する方法

WBOY
WBOYオリジナル
2023-06-21 14:45:461016ブラウズ

インターネット技術の継続的な発展に伴い、コンテンツ管理システム (CMS) はネットワーク アプリケーションにおいてますます重要な役割を果たしています。 CMS を使用すると、Web サイト管理者や作成者は Web サイトのコンテンツを管理しやすくなります。全文検索とキーワード クエリは CMS でよく使用される機能の 1 つです。 PHP は広く使用されている Web 開発言語です。この記事では、PHP を使用して CMS に全文検索とキーワード クエリを実装する方法を紹介します。

1. 全文検索

全文検索とは、記事全体から特定のキーワードまたは語句を検索することを指します。 CMSで全文検索機能を実装するにはMySQLの全文検索機能を利用する必要がありますが、同時に以下のコードを他のデータベースでも利用することができます。

1.1 検索フォームの作成

CMS Web サイトでの検索モジュールの作成は重要なタスクです。 Web サイト ユーザーの一般的なスキル レベルと使用パターンを考慮する必要があります。以下は、テキスト入力ボックスと送信ボタンを含む単純な検索フォームです。

<form action="search_results.php" method="post">
    <input type="text" name="search_keyword">
    <input type="submit" name="submit" value="Search">
</form>

1.2 検索機能の実装

検索フォームにキーワードを入力した後、クエリ ステートメントにキーワードを挿入する必要があります。以下は、基本的な MySQL 全文検索クエリ ステートメントです。

SELECT * FROM `articles` WHERE MATCH (`title`, `content`) AGAINST ('$search_keyword')

このクエリ ステートメントでは、「articles」テーブルの「title」フィールドと「content」フィールドに検索キーワード「$search_keyword」が含まれているかどうかをクエリします。キーワードが一致すると、記事のすべてのコンテンツが返されます。 PHP コードでは、SQL ステートメントの正確さとセキュリティを確保するために、MySQL の「mysqli_real_escape_string()」関数を使用して検索キーワードをエスケープする必要があることに注意してください。

$search_keyword = mysqli_real_escape_string($con, $_POST['search_keyword']);

2. キーワード クエリ

CMS には、全文検索に加えて、キーワード クエリ機能も必要です。この機能は、ユーザーが指定したキーワードに基づいて、関連するすべてのキーワードをクエリするために使用されます。 。 記事。

2.1 キーワード クエリ フォームの作成

Web サイトでは、キーワード クエリの場合、国に重要なキーワードが含まれている場合、ユーザーはキーワードを入力し、その重要性を選択して、キーワードをフィルタリングできます。アプリケーションによって返された結果。以下は、3 レベルのセレクターを含む検索フォームです。

<form action="search_results.php" method="post">
    <input type="text" name="search_keyword">
    <select name="importance">
        <option value="1">Low</option>
        <option value="2">Medium</option>
        <option value="3" selected>High</option>
    </select>
    <input type="submit" name="submit" value="Search">
</form>

2.2 キーワードクエリ機能の実装

キーワードクエリの実装では、MySQL の「LIKE」演算子と「AND/OR」論理演算子を組み合わせる必要があります。以下は、キーワード クエリの基本的なクエリ ステートメントです。このうち、実際のアプリケーションでは、$conn をデータベースに正しく接続するように変更する必要があります。

$conn = mysqli_connect($servername, $username, $password, $dbname);
$search_keyword = mysqli_real_escape_string($conn, $_POST['search_keyword']);
$importance = mysqli_real_escape_string($conn, $_POST['importance']);
$query = "SELECT * FROM articles WHERE ";
$query .= "(title LIKE '%$search_keyword%' ";
$query .= "OR content LIKE '%$search_keyword%') ";
if ($importance == 1) {
    $query .= "AND importance = 1";
} elseif ($importance == 2) {
    $query .= "AND importance = 2";
} elseif ($importance == 3) {
    $query .= "AND importance >= 3";
}
$result = mysqli_query($conn, $query);

クエリ文では、まず、入力した検索キーワードがタイトルまたは内容に存在するかどうかをクエリし、存在する場合は、重要度が 1 または 2 の記事とそれ以上の記事をクエリします。または 3 に等しい。複数の結果が存在する可能性があり、それらをすべてループしてすべてを表示できます。記事の追加、編集、削除など、CMS の他の機能にも同様の方法を使用できます。

この記事で紹介する方法は、基本的な検索とクエリの実装にすぎず、すべての Web サイトのニーズを満たすことはできません。実際のアプリケーションでは拡張および最適化する必要もあります。たとえば、高度な検索、ページネーション、検索結果の並べ替えなどの機能を使用できます。ただし、上記の内容は入門ガイドとしても機能し、PHP を使用して CMS で全文検索とキーワード クエリを開発する方法をより深く理解できるようになります。

以上がPHP を使用して CMS で全文検索とキーワード クエリを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。