문제:
사용자를 허용하는 검색 양식이 있습니다. 학생 ID, 이름, 전공, 대학 등 여러 검색 매개변수를 입력합니다. 이러한 매개변수의 조합을 사용하여 학생을 검색할 수 있기를 원합니다.
답변:
여러 매개변수로 검색을 활성화하려면 SQL WHERE 절 기반을 동적으로 작성하십시오. 입력한 매개변수에 대해 user.
해결책:
PHP의 PDO(선호 방법) 사용:
$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);
기존 MySQLi 접근 방식 수정:
$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!