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

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

Susan Sarandon
Susan Sarandon원래의
2024-12-26 19:44:10685검색

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

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

사용자가 여러 매개변수를 입력할 수 있는 검색 양식을 만들 때 검색 결과가 어떻게 표시되는지 고려하는 것이 중요합니다.

제공된 예에서 검색 양식에는 ID, 이름, 전공, 대학에 대한 별도의 입력 필드가 있습니다. 그런 다음 results.php 파일은 개별 if/elseif 문을 사용하여 이러한 각 매개변수를 개별적으로 처리합니다.

그러나 사용자가 하나 이상의 매개변수를 입력할 수 있도록 하려면 보다 동적인 접근 방식이 필요합니다. 이는 입력된 매개변수를 기반으로 SQL 쿼리에 대한 WHERE 절을 동적으로 구축함으로써 달성할 수 있습니다.

다음은 이 접근 방식을 보여주는 results.php 파일의 수정된 버전입니다.

<?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'].'%';
}

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

while ($student = $stmt->fetch()) {
    echo '
        <tr>
            <td>'.$student['uid'].'</td>
            <td>'.$student['name'].'</td>
            <td>'.$student['major'].'</td>
            <td>'.$student['college'].'</td>
            <td><a href="?m=profile&amp;id='.$student['id'].'">

이 코드는 입력된 매개변수를 기반으로 WHERE 절을 동적으로 작성합니다. 사용자가 이름만 입력하면 쿼리는 이름으로만 필터링됩니다. 사용자가 이름과 전공을 모두 입력하면 쿼리는 두 매개변수를 기준으로 필터링됩니다.

이 접근 방식을 사용하면 보다 유연하고 사용자 친화적인 검색 환경이 가능합니다.

위 내용은 PHP에서 여러 매개변수를 사용하여 동적 검색 양식을 작성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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