코드를 작성 전, 한글로 내가 할 것들을 미리 작성해두는 게 편해서 다음과 같이 정리했다.
💡구조
0. mini_mission.php 생성
1. 최상단 DB 연결 php 넣기
2. 학생 이름을 받는 input, 확인 submit 만들기
3. DB에서 위 이름에 해당하는 결과 검색
4. 만약 이름이 있다면, 이름과 점수를 나타내고
5. 만약 이름이 없다면, 해당 학생은 DB에 없다고 표시해주기
다음은 코드 완성 후의 결과이다.


코드는 다음과 같이 작성했다.
mini_mission.php
<!-- 학생 이름, 점수가 들어가있는 DB
GET방식으로 학생 이름 나오면, 점수가 출력되는 페이지 만들기 -->
<?php
require_once 'db_func.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>학생 성적 조회</title>
<link rel="stylesheet" type="text/css" href="mini_mission.css">
</head>
<body>
<h2>학생의 이름을 입력하면 성적을 확인할 수 있습니다.</h2>
<form action="">
<input type="text" name="sname" placeholder="이름을 입력하세요.">
<button type="submit">확인</button>
</form>
<div style="<?php if(!isset($_GET['sname'])) echo 'display: none;'; ?>">
<?php
if(isset($_GET['sname'])){
$sname = $_GET['sname'];
$sql = "select * from test_table where name ='$sname'";
$result = mysqli_query($db_conn, $sql);
$row = mysqli_fetch_array($result);
if(isset($row)){
echo "<h1>".$row['name'] . " 학생의 점수는 " . $row['score'] . " 입니다.</h1>";
} else {
echo "<h1>해당 학생은 DB에 존재하지 않습니다.</h1>";
}
}
mysqli_close($db_conn);
?>
</div>
</body>
</html>
중요한 부분을 라인별로 설명하면 다음과 같다.
<?php
require_once 'db_func.php';
?>
DB 연결, 해당 php을 불러와 DB 연결할 수 있는 티켓을 불러온다.
<div style="<?php if(!isset($_GET['sname'])) echo 'display: none;'; ?>">
입력된 입력이 없는데도, 메세지가 표시되면 안 되니 존재할 때만 표기되도록 설정했다.
$sql = "select * from test_table where name ='$sname'";
$result = mysqli_query($db_conn, $sql);
$row = mysqli_fetch_array($result);
이름이 있으면 DB에서 검색 후 그 결과는 sql 변수에 저장한다.
DB티켓과 위 변수를 result 변수에 저장한다.
그 결과에서 데이터를 뽑아 row 변수에 저장한다.
if(isset($row)){
echo "<h1>".$row['name'] . " 학생의 점수는 " . $row['score'] . " 입니다.</h1>";
} else {
echo "<h1>해당 학생은 DB에 존재하지 않습니다.</h1>";
}
row의 값이 존재한다면 DB의 name과 score에서 각각의 값이 불러오고 echo로 화면에 표시한다.
값이 존재하지 않는다면, 존재하지 않는다는 메세지를 출력한다.
mysqli_close($db_conn);
mysql 데이터베이스 연결을 닫는다.
연결을 닫는 이유 : 많은 연결이 열려 있으면, 그 자체로 자원이 소모되며 서버 성능을 낮출 수 있다. 또한 보안적으로도 무단 엑서스 가능성을 낮춘다.
'개발 > PHP' 카테고리의 다른 글
| [3주차 - 2] PHP, Session 연결과 로그아웃 (0) | 2023.11.15 |
|---|---|
| [3주차 - 1] PHP, HASH (비밀번호 저장, 로그인 과정) (0) | 2023.11.13 |
| [2주차 - 2] DB 연결 (linux mysql DB 연결 확인, 연결 티켓 만들기) (0) | 2023.11.05 |
| [2주차 - 1] DB 연결 환경설정(Mysql설치, phpMyAdmin 설치) (0) | 2023.11.05 |
| [1주차] 간이 로그인 페이지 만들기 (DB연결 X) (2) | 2023.10.28 |