사용자가 여러 매개변수를 입력할 수 있는 검색 양식을 만들 때 검색 결과가 어떻게 표시되는지 고려하는 것이 중요합니다.
제공된 예에서 검색 양식에는 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&id='.$student['id'].'">
이 코드는 입력된 매개변수를 기반으로 WHERE 절을 동적으로 작성합니다. 사용자가 이름만 입력하면 쿼리는 이름으로만 필터링됩니다. 사용자가 이름과 전공을 모두 입력하면 쿼리는 두 매개변수를 기준으로 필터링됩니다.
이 접근 방식을 사용하면 보다 유연하고 사용자 친화적인 검색 환경이 가능합니다.
위 내용은 PHP에서 여러 매개변수를 사용하여 동적 검색 양식을 작성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!