複数のパラメータを含む検索フォーム
検索フォームで、ユーザーが複数のパラメータを入力できるようにすると、検索機能を強化できます。ただし、これには検索プロセスの変更が必要です。
動的 WHERE 句
複数のパラメータを有効にする鍵は、ユーザーの入力に基づいて WHERE 句を動的に構築することです。 。 PDO を使用して PHP でこれにアプローチする方法は次のとおりです。
$wheres = array(); $params = array(); if (!empty($_GET['id'])) { $wheres[] = 'a.uid = :uid'; $params[':uid'] = $_GET['id']; } if (!empty($_GET['major'])) { $wheres[] = 'a.major = :major'; $params[':major'] = $_GET['major']; } if (!empty($_GET['name'])) { $wheres[] = 'b.name LIKE :name'; $params[':name'] = '%'.$_GET['name'].'%'; }
ここでは、条件ステートメントを保持する配列 $wheres と、対応するパラメーター値を保存する $params 配列を作成します。空ではない各パラメータについて、$wheres に条件を追加し、そのパラメータを $params に保存します。
SQL クエリの生成
次に、次の条件を連結します。 WHERE 句を形成する $wheres:
if (!empty($wheres)) { $sql .= " WHERE " . implode(' AND ', $wheres); }
implode() 関数は条件を結合します。キーワード「AND」を使用します。これをベース SQL クエリに追加します。
クエリの実行と結果の表示
次に、クエリを準備して実行します。
$stmt = $db->prepare($sql); $stmt->execute($params);
最後に、結果セットを反復処理し、元の情報と同様に、目的の生徒情報を表示します。 code:
while ($student = $stmt->fetch()) { ... }
この動的なアプローチにより、ユーザーは複数のパラメータを入力し、それらを組み合わせて検索結果を調整できます。
以上がPHP で複数パラメータ検索フォームの動的な WHERE 句を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。