現在の位置: ホーム> 最新記事一覧> PHPサイト検索機能実装チュートリアル:フォームからデータベースへのクエリの詳細な説明

PHPサイト検索機能実装チュートリアル:フォームからデータベースへのクエリの詳細な説明

M66 2025-08-04

PHPサイト検索機能の紹介

ウェブサイトのコンテンツの継続的な成長に伴い、ユーザーに高速で便利な情報検索機能を提供することが特に重要です。現場での検索機能は、ウェブサイトのユーザビリティとユーザーエクスペリエンスを大幅に改善できます。この記事では、PHPを使用して基本的な敷地内検索機能を実装する方法について説明します。

検索フォームを作成します

まず、ユーザーが検索キーワードを入力するには、フロントエンドページに検索フォームを追加する必要があります。

 <form method="GET" action="search.php">
  <input type="text" name="keyword" placeholder="キーワードを入力してください">
  <input type="submit" value="検索">
</form>

このフォームは、GETモードでデータを送信し、処理ページのパラメーターとしてユーザーが入力したキーワードを渡します。

ユーザー入力とプロセス検索リクエストを取得します

search.phpでは、最初にユーザーのキーワード入力を受け取ります。

 <?php
$keyword = $_GET['keyword'];
// データベースに接続し、一致するデータをクエリします
// ...
?>

$ _GETでユーザーが入力したキーワードを取得した後、これらのキーワードを使用してデータベースをクエリします。

データベースに接続し、検索を実行します

PDOを使用してデータベースに接続し、ファジーマッチングクエリを実行するためのサンプルコードを次に示します。

 <?php
$keyword = $_GET['keyword'];

$host = 'localhost';
$dbname = 'database_name';
$username = 'username';
$password = 'password';

try {
  $db = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
} catch (PDOException $e) {
  die("データベース接続に失敗しました:" . $e->getMessage());
}

// クエリステートメント
$query = "SELECT * FROM articles WHERE title LIKE '%$keyword%' OR content LIKE '%$keyword%'";
$result = $db->query($query);
$articles = $result->fetchAll(PDO::FETCH_ASSOC);
?>

ここでは、類似のステートメントを使用して、記事のタイトルとコンテンツをファジークエリして、キーワードマッチングを実現します。

出力検索結果

検索された記事データは、ループを介してページに表示されます。

 <?php
foreach ($articles as $article) {
  echo '<h3>' . $article['title'] . '</h3>';
  echo '<p>' . $article['content'] . '</p>';
}
?>

このようにして、ユーザーはキーワードを送信した後、キーワードを含むすべての記事を見ることができます。

検索エクスペリエンスをさらに最適化します

上記のコードは基本的な検索関数を実装できますが、実際のプロジェクトでは、次のことも必要になる場合があります。

  • ユーザー入力をフィルターして、SQL注入を防ぎます
  • あまりにも多くの結果を避け、ゆっくりと負荷をかけるためにページング機能を実装する
  • 中国のキーワードにワードセグメンテーションテクノロジーを使用して、検索の精度を向上させる
  • ElasticsearchやSphinxなどのフルテキスト検索エンジンを使用して検索パフォーマンスを強化する

検索機能を合理的に最適化すると、ユーザーの満足度が向上するだけでなく、アクセス変換率が高くなります。

要約します

この記事では、PHPを使用して、フォームの提出、キーワード処理、データベース接続とクエリ、結果表示など、オンサイト検索を実装する基本的なプロセスを紹介します。例は比較的基本的なものですが、初心者向けの優れた紹介基盤です。あなた自身のプロジェクトのニーズに応じて、より高度な機能と最適化方法を徐々に導入できます。