> 백엔드 개발 > PHP 튜토리얼 > 여러 검색 매개변수를 허용하도록 검색 양식을 수정하려면 어떻게 해야 합니까?

여러 검색 매개변수를 허용하도록 검색 양식을 수정하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2025-01-03 18:24:40
원래의
986명이 탐색했습니다.

How Can I Modify a Search Form to Accept Multiple Search Parameters?

하나 이상의 (다중) 매개변수가 포함된 검색 양식

문제:

이전 검색 양식 구현에서는 한 번에 하나의 매개변수만 사용할 수 있었습니다. 목표는 사용자가 하나 이상의 매개변수를 입력하고 해당 검색 결과를 받을 수 있도록 이 양식을 수정하는 것입니다.

해결책:

이를 달성하기 위해 입력 매개변수를 기반으로 WHERE 절을 동적으로 작성하도록 PHP 코드를 수정합니다.

수정됨 search.php:

<?php

$wheres = [];
$params = [];

if (!empty($_POST['id']) && isset($_POST['id'])) {
    $wheres[] = 'a.uid = :uid';
    $params[':uid'] = $_POST['id'];
}
if (!empty($_POST['major']) && isset($_POST['major'])) {
    $wheres[] = 'a.major = :major';
    $params[':major'] = $_POST['major'];
}
if (!empty($_POST['college']) && isset($_POST['college'])) {
    $wheres[] = 'a.college = :college';
    $params[':college'] = $_POST['college'];
}
if (!empty($_POST['name']) && isset($_POST['name'])) {
    $wheres[] = 'b.name LIKE :name';
    $params[':name'] = '%' . $_POST['name'] . '%';
}

$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);

// Display the results as in the original code
로그인 후 복사

설명:

  1. WHERE 절 조건 및 매개변수에 대해 빈 배열을 초기화합니다.
  2. 각 입력 매개변수를 확인하고 해당 조건과 매개변수를
  3. 결합된 WHERE 절 조건을 동적으로 포함하여 SQL 쿼리를 작성합니다.
  4. 이름이 지정된 매개변수가 있는 PDO를 사용하여 SQL 문을 준비하고 실행합니다.
  5. 검색 결과를 다음과 같이 표시합니다.

이제 사용자는 이 접근 방식을 활용하여 여러 매개변수를 입력하고 지정된 모든 항목을 기반으로 결과를 얻을 수 있습니다. 기준입니다.

위 내용은 여러 검색 매개변수를 허용하도록 검색 양식을 수정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿