>백엔드 개발 >PHP 튜토리얼 >PHP에서 여러 검색 매개변수를 사용하여 검색 양식을 작성하는 방법은 무엇입니까?

PHP에서 여러 검색 매개변수를 사용하여 검색 양식을 작성하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-17 02:08:23846검색

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

하나 이상의 (다중) 매개변수가 있는 검색 양식

문제:

사용자를 허용하는 검색 양식이 있습니다. 학생 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.