ホームページ > バックエンド開発 > PHPチュートリアル > PHP で複数の検索パラメータを含む検索フォームを作成する方法

PHP で複数の検索パラメータを含む検索フォームを作成する方法

Linda Hamilton
リリース: 2024-12-17 02:08:23
オリジナル
843 人が閲覧しました

How to Build a Search Form with Multiple Search Parameters in PHP?

1 つ以上の (複数) パラメーターを含む検索フォーム

問題:

ユーザーがアクセスできる検索フォームがあります。学生 ID、名前、専攻、大学などの複数の検索パラメータを入力します。これらのパラメータを任意に組み合わせて学生を検索できるようにしたいと考えています。

回答:

複数のパラメータを使用した検索を有効にするには、SQL WHERE 句に基づいて動的に構築します。によって入力されたパラメータに基づいて、 user.

解決策:

  1. PHP の PDO を使用する (推奨方法):

    • WHEREを保持する配列を作成する条件。
    • 各検索パラメータを反復処理し、対応する WHERE 条件を配列に追加します。
    • 配列を展開して単一の WHERE 句を作成します。
    • PDO を準備して実行します。 WHERE 句を使用してステートメントをバインドします。パラメータ。
    $wheres = [];
    $params = [];
    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'].'%';
    }
    // ...continue for additional parameters
    
    $sql = "SELECT * FROM user_details AS a JOIN user AS b ON a.uid = b.id";
    if (!empty($wheres)) {
        $sql .= " WHERE " . implode(' AND ', $wheres);
    }
    $stmt = $db->prepare($sql);
    $stmt->execute($params);
    ログイン後にコピー
  2. 既存の MySQLi アプローチを変更する:

    • 空でない各パラメータを確認し、 SQL クエリに対応する WHERE 条件。
    • 結合するには AND を使用します。条件。
    $sql = "SELECT * FROM user_details a, user b WHERE a.uid = b.id";
    if (!empty($_GET['id'])) {
        $sql .= " AND a.uid = '" . $_GET['id'] . "'";
    }
    if (!empty($_GET['major'])) {
        $sql .= " AND a.major = '" . $_GET['major'] . "'";
    }
    if (!empty($_GET['name'])) {
        $sql .= " AND b.name LIKE '%" . $_GET['name'] . "%'";
    }
    // ...continue for additional parameters
    
    $result = mysqli_query($db, $sql);
    ログイン後にコピー

以上がPHP で複数の検索パラメータを含む検索フォームを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート